0

我正在尝试对 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"
    }
}

我哪里错了?谢谢

4

1 回答 1

0

由于您从不同的域请求数据,jQuery 可能会使用 JSONP,并且您不能为 JSONP 请求设置标头(因为它们通过脚本标签工作)。

我不知道那个特定的 API,但我认为必须有一种 JSONP 兼容的方式来传递您的身份验证令牌(cookie、URL 参数、查询参数或类似的东西)。

一个相关的问答:Is it possible to make cross-domain requests in Javascript AND Set Custom Headers?

您也可以使用CORS并以这种方式设置标题。

于 2013-11-09T19:25:07.770 回答