Ajax GET isteğim var Yetkilendirme başlığının ayarlandığından emin olmak için Knockout kodunun bir bölümünde görev yapıyorum.Bir Ajax isteğine bir yetkilendirme üstbilgisinin eklenmesinin doğru yolu nedir?
$.getJSON("/api/business", function (allData) {
var mappedOrgs = $.map(allData, function (item) { return new Business(item) });
self.businesses(mappedOrgs);
});
Bu, herhangi bir yetkilendirme gereksinimi olmadan kendi başına gayet iyi ama taşıyıcı kodu şu gerekiyorsa, ben çalışıyorum:
Benim tercih şöyle jQuery steno yöntemleri ile gitmek genellikle daha uzun bir yoludur:
var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
headers.Authorization = 'Bearer ' + token;
}
$.ajax({
type: 'GET',
url: '/api/business',
headers: headers
}).done(function (data) {
var mappedOrgs = $.map(data, function (item) { return new Business(item) });
self.businesses(mappedOrgs);
}).fail(function() { console.error('api call failed'); });
bile() yöntemi herhangi bir sonuç vermezse $ .ajaxSend aracılığıyla konuyu zorlamak için çalışıyor.
$(document).ajaxSend(function (event, xhr, settings) {
var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
console.info("Found token. Attaching to headers.");
headers.Authorization = 'Bearer ' + token;
settings.headers = headers;
//console.info(headers);
}
});
Peki ben neye bakıyorum? Fiddler'daki her talebi kontrol ediyorum ve Auth başlığı asla eklenmedi. Açıkçası bunu yapmanın doğru bir yolu var ama bir yerde bir adımı kaçırdım. Herhangi bir yardım takdir edildi.
'sessionStorage.getItem 'ifadesinin doğru şekilde jetonu döndürdüğünden emin misiniz? – nemesv
Evet. Hata ayıklayıcısında ve kodda kontrol ettim. –