调用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/