调用jQuery.ajax()后,jqXHR.getAllResponseHeaders()不会返回所有 header 。服务器用以下 header 响应:

Connection: keep-alive
Content-Length: 64
Content-Type: application/json
X-My-CustomHeader: whatever
getAllResponseHeaders()仅返回:
Content-Type: application/json

我究竟做错了什么?

示例
var request = {
  'url': 'http://api.someExternalDomain.com/resource/',
  'type': someMethod,
  'success': function(data, textStatus, jqXHR) {
    console.log(jqXHR.getAllResponseHeaders());
  }
};

$.ajax(request);

最佳答案

svenyonson在评论中指出了这一点,但对我来说,这就是答案,因此我提高了。 如果您正在执行CORS ,则服务器必须明确允许客户端读取哪些 header 。如果要使用javascript读取X-My-CustomHeader,则此 header 应在服务器响应中:

Access-Control-Expose-Headers: X-My-CustomHeader

更多细节here

关于ajax - jqXHR.getAllResponseHeaders()不会返回所有 header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5614735/

10-11 13:16