问题描述
- 可以用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页面来接卸内容
时间: 2024-10-31 10:19:28