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