ian*_*ell 4 http azure bing-api
我正在向Bing Search API发送ajax请求.我将其用于请求的URL在我将其放入浏览器时起作用.使用ajax我得到401错误"The authorization type you provided is not supported. Only Basic and OAuth are supported"
因此我的标题是错的.它在浏览器中工作,因为我手动输入我的azure帐户密钥.
<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>
Run Code Online (Sandbox Code Playgroud)
该URL https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27web%27&$format=json&Query=%27van%20gogh%27
在浏览器中工作.
如何设置标题以便它接受我的帐户密钥?
ian*_*ell 14
我想到了.我不得不在标题中使用Base64编码我的Azure密钥,前缀为冒号.我去了这个网站 并粘贴了冒号":"加上我的Azure帐户密钥和base64'd.
所以我的密钥OQA/cs
变成了:OQA/cs
base64'd Ok9RQS9jcw==
,最后的标题看起来像
`headers: {
'Authorization': 'Basic Ok9RQS9jcw=='
}`
Run Code Online (Sandbox Code Playgroud)
和Bing返回我想要的json.在编码之前,不要忘记将冒号包含在帐户密钥的第一个字符中,以便Base64将其编码为密钥的一部分.
归档时间: |
|
查看次数: |
1545 次 |
最近记录: |