发送经过身份验证的请求



我有一个用 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 错误:

"消息":"此请求的授权被拒绝。

我做错了什么?

根据jQuery.ajax的官方文档,使用它来设置每个请求的自定义标头:

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', '...');
    }
});

相关内容

  • 没有找到相关文章

最新更新