dopo il login al server Remote API, e ottenere un access_token, cerco di impostare l'intestazione di autorizzazione per tutte le chiamate Ajax successive:ajaxSetup (beforeSend non funziona
.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);
}
});
su console posso vedere:
GOT AUTHORIZATION login.js:34
Bearer 6b7578772fbb4178793100651f2234de840237fe
ma nessuno di chiamate ajax successive ottenere la corretta intestazione set:
https://macmini.local:8000/Categories?_=1381758170726
non può succe Ed in quanto non access_token si trova nell'intestazione (console del server ..)
{ code: 400,
error: 'invalid_request',
error_description: 'The access token was not found',stack: undefined }
saveAccessToken: 6b7578772fbb4178793100651f2234de840237fe, client_id: 1234567890, user_id: 1
ho cercato di modificare l'intestazione all'interno della chiamata AJAX wo alcun successo
Grazie ... è lavorare in questo modo ... ho trovato anche il modo di fare il beforeSend lavorare all'interno del blocco Ajax chiamata ... Ho dimenticato di aggiungere: async: false .. $ .ajax ('https : //macMini.local: 8000/Categorie, { \t tipo: "GET", \t della cache: false, async: false, \t dataType: "json", beforeSend: function (XHR, impostazioni) { xhr.setRequestHeader ('Authorization', 'Bearer' + amplify.store ("token") .access_token); } }) – erwin
thi s è probabilmente obsoleto, ora puoi semplicemente impostare la proprietà "headers" direttamente in $ .ajax() – MonoThreaded
@MonoThreaded risposta aggiornata, grazie per avermelo fatto notare. Senza di te non lo noterei. – abc123