ajaxSetup (beforeSend не работает
после входа на удаленный сервер aPI и получения access_token я пытаюсь установить заголовок авторизации для всех последующих вызовов ajax:
.done(function (result) {
console.log("GOT AUTHORIZATION");
amplify.store( "tokens", { access_token: result.access_token, refresh_token: result.refresh_token, token_type: result.token_type, expires_in: result.expires_in });
var authorization = 'Bearer ' + amplify.store( "tokens" ).access_token;
console.log(authorization);
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', authorization);
}
});
на консоли я вижу :
GOT AUTHORIZATION login.js:34
Bearer 6b7578772fbb4178793100651f2234de840237fe
но ни один из последующих вызовов ajax не получает правильный набор заголовков:
https://macmini.local:8000/Categories?_=1381758170726
не удается, так как access_token не найден в заголовке ( консоль сервера ..)
{ code: 400,
error: 'invalid_request',
error_description: 'The access token was not found',stack: undefined }
saveAccessToken: 6b7578772fbb4178793100651f2234de840237fe, client_id: 1234567890, user_id: 1
Я попытался изменить заголовок внутри вызова ajax wo любой успех
1 ответов
Обновил Ответ
по состоянию на jQuery 1.5 .ajax
поддерживает headers
свойства
$.ajax({
url: "http://fiddle.jshell.net/favicon.png",
headers: {
'Authorization': authorization
}
})
.done(function( data ) {
if ( console && console.log ) {
console.log( "Sample of data:", data.slice( 0, 100 ) );
}
});
Примечания:authorization
переменная должна быть установлена где-то перед вызовом
Ответ
$(function(){
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', authorization);
}
});
});
на ajaxSetup
для работы вам нужно позвонить в документе.готовый.