jQuery和AJAX响应头

所以我得到了这个jQuery AJAX调用,并且响应来自服务器以302重定向的形式。 我想采取这种重定向并将其加载到iframe中,但是当我尝试使用JavaScript警报查看标题信息时,即使Firebug正确地看到它,它也会显示为空。

这是代码,如果它有帮助:

$j.ajax({
    type: 'POST',
    url:'url.do',
    data: formData,
    complete: function(resp){
        alert(resp.getAllResponseHeaders());
    }
});

我真的没有访问服务器端的东西,为了将URL移动到响应主体,我知道这是最简单的解决方案,所以任何帮助解析标题都会很棒。


如果您使用的是旧版本的jquery,cballou的解决方案将起作用。 在更新的版本中,您还可以尝试:

  $.ajax({
   type: 'POST',
   url:'url.do',
   data: formData,
   success: function(data, textStatus, request){
        alert(request.getResponseHeader('some_header'));
   },
   error: function (request, textStatus, errorThrown) {
        alert(request.getResponseHeader('some_header'));
   }
  });

根据文档,XMLHttpRequest对象自jQuery 1.4起可用。


如果这是一个CORS请求,你可能会看到调试工具中的所有头文件(例如Chrome-> Inspect Element-> Network),但是如果这样的话,xHR对象将只检索头文件(通过xhr.getResponseHeader('Header') )一个头是一个简单的响应头:

  • Content-Type
  • Last-modified
  • Content-Language
  • Cache-Control
  • Expires
  • Pragma
  • 如果它不在这个集合中,它必须出现在由服务器返回的Access-Control-Expose-Headers报头中。

    关于这种情况,如果它是一个CORS请求,当且仅当下面的头也存在时,才能通过XMLHttpRequest对象检索Location头:

    Access-Control-Expose-Headers: Location
    

    如果它不是一个CORS请求,那么XMLHttpRequest就没有问题了。


     var geturl;
      geturl = $.ajax({
        type: "GET",
        url: 'http://....',
        success: function () {
          alert("done!"+ geturl.getAllResponseHeaders());
        }
      });
    
    链接地址: http://www.djcxy.com/p/12429.html

    上一篇: jQuery and AJAX response header

    下一篇: blank window in JavaScript function