2 bbhhga bbhhga 于 2015.06.30 13:57 提问

我想用javascript去调用Bing Search API, 但是总是报认证错误,什么原因?

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

2个回答

oyljerry
oyljerry   Ds   Rxr 2015.06.30 21:26

一般都有oauth认证。你需要先拿到一个授权token

WillShaoMSFT
WillShaoMSFT   Rxr 2015.06.30 22:48

您好,
可以使用JS去调用,您可以参考我如下的调用方式:

 <!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>

在这个过程中,您需要引入encoding.js这个文件,同时在认证这边使用这个方法:

  xmlhttp.setRequestHeader('Authorization', 'Basic ' + btoa(':yourkey));

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

Csdn user default icon
上传中...
上传图片
插入图片