在来自 Ajax 的跨域请求中发送 Headers
Send Headers in Cross domain request From Ajax
我需要将 UserID
作为请求 header 传递,但我无法在跨域 url.[=23] 中将其与请求 header 一起传递=]
下面是 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 Urls,
- jQuery JSONP ajax, authentication header not being set
- Can I set headers in cross domain json requests?
有没有办法在 Firebug Headers tab
中显示请求 header,或者是服务器端安全阻止了请求 header。
终于找到答案了
我端(客户端)没有错误。实际上错误来自服务器端,不允许我发送 headers。在服务器端允许跨源请求参数问题已解决。
我需要将 UserID
作为请求 header 传递,但我无法在跨域 url.[=23] 中将其与请求 header 一起传递=]
下面是 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 Urls,
- jQuery JSONP ajax, authentication header not being set
- Can I set headers in cross domain json requests?
有没有办法在 Firebug Headers tab
中显示请求 header,或者是服务器端安全阻止了请求 header。
终于找到答案了
我端(客户端)没有错误。实际上错误来自服务器端,不允许我发送 headers。在服务器端允许跨源请求参数问题已解决。