jQuery.ajax()通话后jqXHR.getAllResponseHeaders()不会返回所有标题.服务器响应以下标头:
Connection: keep-alive
Content-Length: 64
Content-Type: application/json
X-My-CustomHeader: whatever
Run Code Online (Sandbox Code Playgroud)
getAllResponseHeaders() 仅返回:
Content-Type: application/json
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
例
var request = {
'url': 'http://api.someExternalDomain.com/resource/',
'type': someMethod,
'success': function(data, textStatus, jqXHR) {
console.log(jqXHR.getAllResponseHeaders());
}
};
$.ajax(request);
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 10
svenyonson在评论中称呼这个,但对我来说这是答案,所以我正在提升它.如果您正在执行CORS,则服务器必须明确允许客户端读取哪些标头.如果你想读取X-My-CustomHeaderjavascript,那么这个标题应该在服务器响应中:
Access-Control-Expose-Headers: X-My-CustomHeader
Run Code Online (Sandbox Code Playgroud)
更多细节在这里.
来自jquery官方网站:
目前,由于Firefox中的一个错误,.getAllResponseHeaders()返回空字符串,尽管.getResponseHeader('Content-Type')返回非空字符串,因此不支持在Firefox中使用jQuery自动解码JSON CORS响应.
http://api.jquery.com/jQuery.ajax/
| 归档时间: |
|
| 查看次数: |
25175 次 |
| 最近记录: |