2013-11-09 68 views
0

我正在嘗試使ajax致電blogger.com。該呼叫回顧用戶的數據。我使用這個https://developers.google.com/blogger/docs/3.0/作爲參考。以下是我寫的ajax。ajax致電博客API

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" 
    } 
} 

的進一步跟蹤我在哪裏錯了嗎?由於

回答

0

由於您所請求的數據形成了不同的域,jQuery是可能要使用JSONP,你不能對JSONP請求設置頭(因爲他們通過腳本標籤工作)。

我不知道具體的API,但我認爲必須有通過您的身份驗證令牌(cookie時,URL PARAM,查詢參數或類似的東西)一個JSONP兼容的方式。

一個相關的問題和答案:Is it Possible to Make Cross-Domain Requests in Javascript AND Set Custom Headers?

您可能還可以使用CORS和設置頭的方式。