可以用JS去调用Bing Search API?

大家好哦!
我想用javascript去调用Bing Search API, 但是总是报认证错误,是不能使用Js调用呢还是我的认证方式错了?

你自己找下Bing是否提供js版本的API,不提供肯定不行了。js是运行在客户端的,有安全问题,如果没有提供jsonp格式的数据,跨域请求数据源会报错的。

服务器端不存在安全问题

Hi,

JS可以调用BIng API,但验证方式可能有些改变,您需要使用Basic的方式验证,您可以参考如下代码:

 <!DOCTYPE html>
<html>
<head>
    <script src="encode.js"></script>
    <script type="text/javascript">
        function loadXMLDoc()
        {
            var xmlhttp;
            if (window.XMLHttpRequest)  
            {
                // code for IE7+, Firefox, Chrome, Opera, Safari  
                xmlhttp=new XMLHttpRequest();  
            }else  {
                // code for IE6, IE5  
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  
            }
            xmlhttp.onreadystatechange=function()  
            {  
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
                } else
                {
                    document.getElementById("myDiv").innerHTML = xmlhttp.responseText+"state text:"+xmlhttp.statusText;
                }
            }
            var requestStr = "https://api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query=%27willtest%27&$format=json";
            var requestStr2 = "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?Query=%27will%27&$top=10&$format=JSON";
            xmlhttp.open("Get", requestStr, true);
            xmlhttp.setRequestHeader('Authorization', 'Basic ' + btoa(':yourkey));
            xmlhttp.send();
        }</script>
</head>
<body>
    <h2>Bing Test</h2><button type="button" onclick="loadXMLDoc()">Request data</button><div id="myDiv"></div>
</body>
</html>

Best Regards,
Jambor
如果您想进一步了解Windows Azure, Windows Azure 官网欢迎您的访问

你可以直接模拟请求,JS发送HTTP请求,然后返回的HTML页面来接卸内容