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 响应头的主要内容,如果未能解决你的问题,请参考以下文章