【发布时间】:2017-11-13 13:53:47
【问题描述】:
我有以下函数来设置我的 AJAX 请求的标头:
self.authenticate = function () {
self.token = sessionStorage.getItem(tokenKey);
var headers = {};
if (self.token) {
headers.Authorization = 'Bearer ' + self.token;
$.ajaxSetup({
headers: headers
});
}
}
但这不起作用,当我检查开发人员收费 (F12) 或 Fiddler 中的标头时,我看不到 custon 标头,但是当我在请求上设置标头而不是通过 ajaxSetup效果很好。
正在布局页面中调用authenticate 函数:
$(document).ready(function () {
var avm = new AuthenticationViewModel();
avm.authenticate();
});
而self.token 不是null。
例如,对于这个请求:
self.getUsers = function (callback) {
$.get("../API/Users/GetUsers/",callback);
}
我错过了什么?
【问题讨论】:
-
我必须问一个显而易见的问题。您实际上是在任何地方调用身份验证函数吗?
-
@Archer 请查看我编辑的问题。
-
在
avm.authenticate();和您的$.get("../API/Users/GetUsers/");处设置断点并确保: 1. 实际调用了身份验证。 2. 在获取请求之前调用身份验证。 -
@YeldarKurmangaliyev 我这样做了,两者的答案都是 - 是的。
-
在
if (self.token) {之前,输入console.log(self.token)并告诉我你得到了什么
标签: javascript ajax request-headers