JQuery JSONP ajax, заголовок аутентификации не установлен
Я пытаюсь выполнить запрос ajax в API контактов google со следующей настройкой:
$.ajax({
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all",
dataType: 'jsonp',
data: {
alt: 'json-in-script'
},
headers: {
'Authorization': 'Bearer ' + token
},
success: function(data, status) {
return console.log("The returned data", data);
}
});
Но заголовок проверки подлинности, похоже, не устанавливается. Любые идеи?
![The request]()
Ответы
Ответ 1
У меня была такая же проблема в последнее время. Попробуйте следующее:
$.ajax({
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all",
dataType: 'jsonp',
data: {
alt: 'json-in-script'
},
success: function(data, status) {
return console.log("The returned data", data);
},
beforeSend: function(xhr, settings) { xhr.setRequestHeader('Authorization','Bearer ' + token); }
});
EDIT: Похоже, это невозможно сделать с JSONP. Изменить заголовки HTTP для запроса JSONP
Ответ 2
Когда требуется проверка подлинности в запросе кросс-домена, вы должны использовать какой-либо прокси-сервер.
Поскольку использование dataType: jsonp
приводит к тому, что HTTP-запрос, фактически сделанный из script, который добавляется в DOM, заголовки, установленные в $.ajax
, не будут использоваться.
Ответ 3
Кажется, что большинство ресурсов OAUTH2 REST принимают параметр access_token как часть URL-адреса запроса
http://self-issued.info/docs/draft-ietf-oauth-v2-bearer.html#query-param
пожалуйста, попробуйте использовать следующий код:
$.ajax({
dataType: 'jsonp',
url: url,
data: {
'access_token':token.access_token
},
jsonpCallback: 'thecallback',
success: function(data){
_cb(data);
},
error: function(d){
_cb(d);
}
});
Ответ 4
Просто сделайте это (jquery 2.0, но он должен работать в предыдущих версиях)
$.ajax({
url: "/test",
headers: {"Authorization": "Bearer " + $('#myToken').val()}
})
.done(function (data) {
console.log(data);
})
.fail(function (jqXHR, textStatus) {
alert("error: " + textStatus);
});