我正在向 Bing 搜索 API 发送 ajax 请求。当我将请求放入浏览器中时,我用于请求的 URL 就会起作用。使用 ajax 时出现 401 错误"The authorization type you provided is not supported. Only Basic and OAuth are supported"
因此我的标题是错误的。它可以在浏览器中运行,因为我手动输入我的天蓝色帐户密钥。
<script>
$scope.bingsearch = function() {
var azurekey = '....vjrQiHPp4ct1meqroX2pzQZhPvE';
var keywords = $scope.inputvalue;
var myurl = 'https://api.datamarket.azure.com/Bing/Search/v1/Composite?
Sources=%27web%27&$format=json&Query=%27'+ keywords + '%27';
$http({
method: 'POST',
url: myurl,
headers:{
'Authorization': 'Basic ' + azurekey
}
}).success(function(data){
var searchresults = angular.fromJson(+data);
$scope.searchresult = searchresults;
})
};
</script>
The URL https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27web%27&$format=json&Query=%27van%20gogh%27
在浏览器中工作。
如何设置标头才能接受我的帐户密钥?
我想到了。我必须在标头中对我的 Azure 密钥进行 Base64 编码,以冒号为前缀。我去了这个网站 https://www.base64encode.org/并粘贴冒号“:”加上我的Azure帐户密钥并对其进行base64处理。
所以我的钥匙OQA/cs
变成:OQA/cs
然后进行base64处理Ok9RQS9jcw==
最终的标题看起来像
`headers: {
'Authorization': 'Basic Ok9RQS9jcw=='
}`
Bing 返回我想要的 json。不要忘记将冒号作为第一个字符您的帐户密钥在编码之前这样你就可以将它的 Base64 编码为你的钥匙的一部分.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)