我有一个使用asp.net身份保护的MVC项目:
这是我的登录功能:
x : {
type: 'category',
categories: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
tick: {
multiline:false,
culling: {
max: 1
},
},
},
... etc etc...
},
工作正常,我成功获得self.login = function () {
event.preventDefault();
if (!$('#formLogin').valid()) {
return false;
}
var loginData = {
grant_type: 'password',
username: self.userName(),
password: self.password()
};
$.ajax({
type: 'POST',
url: '/API/Token',
data: loginData
}).done(function (data) {
// Cache the access token in session storage.
sessionStorage.setItem(tokenKey, data.access_token);
self.authenticate();
//change status of Login button to Logout
self.redirect('Users');
}).fail(showError);
}
self.authenticate = function () {
self.token = sessionStorage.getItem(tokenKey);
var headers = {};
console.log(self.token);
if (self.token) {
headers.Authorization = 'Bearer ' + self.token;
}
$.ajaxSetup({
headers: headers
});
}
并且标题设置正确。
问题在于,当我尝试发送请求时,例如:
token
我从服务器收到401错误:
" message":"此请求已拒绝授权。"
我做错了什么?
答案 0 :(得分:0)
根据jQuery.ajax
的{{3}},使用此功能设置每个请求的自定义标头:
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', '...');
}
});