我正在尝试对 blogger.com 进行ajax调用。调用会引用用户的数据。我使用此 https://developers.google.com/blogger/docs/3.0/作为参考.以下是我写的 ajax.
var getUserDetail = function(){
var url = "https://www.googleapis.com/blogger/v3/users/self";
$.ajax({
url: url,
type: 'GET',
beforeSend: function (request)
{
request.setRequestHeader("Authorization","oauth_token_I_got");
},
}).done(function(data) {
console.log(data)
},"json");
}
每当我尝试拨打电话时,我都会收到 401 错误
进一步跟踪错误
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
我错在哪里?谢谢
由于您正在从不同的域请求数据,因此 jQuery 可能会使用 JSONP,并且您无法为 JSONP 请求设置标头(因为它们通过脚本标记工作)。
我不知道那个特定的API,但我认为必须有一种与JSONP兼容的方式来传递您的身份验证令牌(cookie,URL参数,查询参数或类似的东西)。
一个相关的问题和答案:是否可以在javascript中发出跨域请求并设置自定义标头?
您还可以使用 CORS 并以这种方式设置标头。