2013-11-09 6 views
0

Я пытаюсь сделать ajax-вызов blogger.com. Вызов возвращает данные пользователя. Я использую этот https://developers.google.com/blogger/docs/3.0/ в качестве ссылки. Следующее - это ajax, который я написал.ajax call to blogger 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, но я бы предположил, что должен быть совместимый с JSONP способ передать ваш токен (cookie, параметр URL, параметр запроса или что-то в этом роде).

Смежный вопрос и ответ: Is it Possible to Make Cross-Domain Requests in Javascript AND Set Custom Headers?

Вы также можете быть в состоянии использовать CORS и установить заголовки таким образом.