【问题标题】:jQuery+AJAX response headerjQuery+AJAX 响应头
【发布时间】: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(); }

标签: javascript jquery ajax http-headers cors


【解决方案1】:

添加解决的问题

Access-Control-Expose-Headers

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

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

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

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    相关资源
    最近更新 更多