我已经阅读了类似问题的无数答案,但无法解决我的具体问题。
我有一个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浏览器中运行此功能。
答案 0 :(得分:6)
您是否尝试过将标头作为参数发送?
$.ajax({
type: 'POST',
url: url,
headers: {
"my-first-header": "first value",
"my-second-header": "second value"
}
})
答案 1 :(得分:1)
我有类似的症状,但是我的特定问题似乎是我正在向执行HTTPS的站点发出http请求,因此,当浏览器收到指向该站点安全版本的301响应时,似乎是XHR子系统遵循重定向,但在此过程中删除标题。