jqXHR.getAllResponseHeaders()不会返回所有标头

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

 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); 

来自jquery官方网站:

目前,由于Firefox中的一个错误,.getAllResponseHeaders()返回空字符串,尽管.getResponseHeader(’Content-Type’)返回非空字符串,不支持在Firefox中使用jQuery自动解码JSON CORS响应。

http://api.jquery.com/jQuery.ajax/

svenyonson在评论中称呼这个,但对我来说这是答案,所以我正在提升它。 如果您正在执行CORS ,则服务器必须明确允许客户端读取哪些标头。 如果你想在javascript中读取X-My-CustomHeader ,那么这个头应该在服务器响应中:

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

这里有更多细节。