在$ .ajax调用中没有发送$ .ajaxSetup标头

时间:2017-07-27 07:22:36

标签: ajax

我的后端有一个JWT身份验证API。

在我的前端应用程序中,我这样做是为每个请求设置令牌:

$.ajaxSetup({
    headers: {
        "Authorization": 'Bearer ' +localStorage.getItem('token')
    },
...

现在,当我这样称呼时:

$.ajax({
        url: "http://localhost:8000/api/auth/user",
        type: 'GET',
...

它不起作用,令牌没有正确附加到呼叫上,但是......如果我这样称呼:

$.ajax({
    headers: {
        "Authorization": 'Bearer ' +localStorage.getItem('token')
    },
    url: "http://localhost:8000/api/auth/user",
    type: 'GET',
...

它完美运行。

现在,如果我像这样声明$ ajaxSetup,它也运行良好:

$.ajaxSetup({
    beforeSend: function(xhr) {
        // Set the header
        xhr.setRequestHeader('Authorization', 'Bearer ' +localStorage.getItem('token'));
    },

有谁可以告诉我,我做错了什么?

1 个答案:

答案 0 :(得分:0)

尽管许多人似乎在其他答案上说了些什么,headers不是$.ajaxSetup()的有效密钥。 Check out the w3schools page关于可能参数的完整列表的方法。