Jquery Ajax不发送头文件

时间:2016-03-20 13:34:19

标签: jquery ajax oauth cors

我已经阅读了类似问题的无数答案,但无法解决我的具体问题。

我有一个Web API,它使用oauth令牌向RESTful服务发出请求。这是跨域的。

我知道我的角色设置正确,因为我可以毫无问题地从应用程序发出请求。

我的问题是我的标头没有被发送。

$.ajax({
        type: "GET",
        crossDomain: true,
        url: url,
        data: data,
        success: success,
        dataType: 'json',
        cache: false,
        beforeSend: function (xhr) {
            xhr.setRequestHeader("Authorization", "bearer TOKENGOESHERE"),
            xhr.setRequestHeader("RandomHeader", "test")
        }
    });

如果我使用fiddler调用我的API并在其中设置标头,则API会按预期获取标头。只有这个AJAX调用才能起作用。

我在最新的Chrome浏览器中运行此功能。

2 个答案:

答案 0 :(得分:6)

您是否尝试过将标头作为参数发送?

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "my-first-header": "first value",
        "my-second-header": "second value"
    }
})

答案 1 :(得分:1)

我有类似的症状,但是我的特定问题似乎是我正在向执行HTTPS的站点发出http请求,因此,当浏览器收到指向该站点安全版本的301响应时,似乎是XHR子系统遵循重定向,但在此过程中删除标题。