【发布时间】:2017-06-12 04:22:38
【问题描述】:
我有一个使用 asp.net 身份保护的 MVC 项目:
这是我的登录功能:
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,并且标头设置正确。
问题是当我尝试发送请求时——例如:
self.getUsers = function () {
$.get("/API/Users/GetUsers/");
}
我从服务器收到 401 错误:
"message": "此请求的授权已被拒绝。"
我做错了什么?
【问题讨论】:
标签: ajax asp.net-web-api http-headers asp.net-identity