jQuery+AJAX 响应头

Posted

技术标签:

【中文标题】jQuery+AJAX 响应头【英文标题】:jQuery+AJAX response header 【发布时间】:2014-03-30 19:38:26 【问题描述】:

我正在尝试使用 JQuery 和 Ajax 读取响应标头,但并非所有标头都返回。只有少数。

$(document).ready(function () 

  $.ajax(
    type: 'POST',
    url:'http://do.convertapi.com/Word2Pdf',
    data: '',
    complete: function(resp)
        alert(resp.getAllResponseHeaders());
         );

);

工作示例:http://jsfiddle.net/tomasr/7jWSv/3/

服务器响应包含上面包含的 CORS 标头,所以使用 ajax 访问标头应该没有问题?

Access-Control-Allow-Origin:*

我想使用 ajax 读取所有响应标头,知道该怎么做吗?

【问题讨论】:

是不是因为ajax调用出错了? 没关系,我也没有得到所有带有 200 代码响应的标头 jsfiddle.net/tomasr/7jWSv/5 这可能是因为你正在做跨域访问,而 jquery 不使用 XHR。 @Pilot 请详细解释。我认为引入 CORS 是为了允许跨域请求,并使用 Access-Control-Allow-Origin。 试试这个type: "GET", async: false, complete: function (XMLHttpRequest, textStatus) var headers = XMLHttpRequest.getAllResponseHeaders(); 【参考方案1】:

添加解决的问题

Access-Control-Expose-Headers

到服务器响应并列出所有这样的标头

Access-Control-Expose-Headers: x-header-1, x-header-2, x-header-3

上面的响应头让Ajax请求读取跨域头。

【讨论】:

以上是关于jQuery+AJAX 响应头的主要内容,如果未能解决你的问题,请参考以下文章

如何通过跨域 ajax 获取响应头?

php Ajax php响应头

学习AJAX必知必会~Ajax基本使用,设置请求行请求体请求头,服务端响应JSON数据

Ajax解决跨域--设置CORS响应头实现跨域

使用 jQuery 从响应头中获取图像文件大小

[面试没答上的问题1]http请求,请求头和响应头都有什么信息?