在Ajax中发送跨域请求时发送头部信息
在Ajax中发送跨域请求时发送头部信息
我需要将UserID
作为请求头传递,但是我无法在跨域URL的请求头中传递它。
以下是Ajax请求的截图,其中我得到了Accept-Control-Request-Header: UserID
,但是当我使用$.ajax() headers选项传递它时,它不会显示在Firebug的Headers Tab
中。
我也尝试了beforeSend
选项,但没有进展。
以下是我使用的示例代码:
headers: {'UserID': 12345 }, dataType: 'jsonp', crossdomain: true, beforeSend: function (request) { request.withCredentials = true; request.setRequestHeader("UserID", "1"); request.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); request.setRequestHeader("Access-Control-Allow-Origin", "*"); },
我还参考了以下所有SO链接:
有办法在Firebug Headers tab
中显示请求头吗?还是服务器端安全性阻止了请求头。
最终,我找到了解决办法。
问题其实不在我这边(客户端),而是在服务器端,服务器不允许我发送头部信息。通过在服务器端允许跨域请求参数,问题得以解决。
服务器需要做哪些改变才能允许这些请求?
服务器由客户提供,所以我不知道他做了哪些改变。但是enable-cors.org/server.html可能对你有帮助。