【发布时间】:2011-08-02 15:39:16
【问题描述】:
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);
【问题讨论】:
-
这适用于我在 FF4 和 Chrome 上。而且我不完全确定,因为您似乎正在获取 一些 数据并且触发了您的成功回调函数,但这可能是您提出的跨域请求问题。
-
另外,你在什么浏览器上看到这个问题?您是否尝试过记录从非跨域请求中获得的标头。
-
嗯,我不希望它能够正常工作 - 除非您使用的 JSONP 看起来不像您正在做的。鉴于这是一个跨域请求,我仍然看不到您是如何获得 any 响应的。你在什么环境下运行这个?也许解决方案可能是摆脱 CDR。
-
似乎即使使用 JSONP,您也不会得到响应头,只有数据:forum.jquery.com/topic/get-response-headers-cross-domain
-
这里已经回答了这个问题:stackoverflow.com/questions/14686769/…