从Ajax发送跨域请求中的标头

时间:2015-02-26 10:25:49

标签: jquery jsonp request-headers

我需要将UserID作为请求标头传递,但我无法通过跨域网址中的请求标头传递它。

下面是我收到Accept-Control-Request-Header : UserID的Ajax请求的屏幕截图,但是当我使用$.ajax() headers选项传递它时;它没有显示在Firebug的Headers Tab

enter image description here

我也尝试了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,

  1. jQuery JSONP ajax, authentication header not being set
  2. Can I set headers in cross domain json requests?
  3. Modify HTTP Headers for a JSONP request
  4. 是否有办法在Firebug Headers tab中显示请求标头,或者是阻止请求标头的服务器端安全性。

1 个答案:

答案 0 :(得分:1)

最后,我得到了解决方案。

我的结尾没有错误(客户端)。实际上错误来自服务器端,这不允许我发送标头。在服务器端允许交叉原始请求参数,问题就解决了。