我尝试在火狐扩展中使用XMLHttpRequest进行"POST“,之后我尝试获取"Location”头并在新标签中打开它。由于某些原因,XMLHttpRequest不包含location标头。
我的代码
function web(url,request)
{
var http = new XMLHttpRequest();
http.open('POST',url,true);
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.onreadystatechange=function() {
if(http.readyState == 2) {
alert(http.getResponseHeader("Location"));
}
}
http.send(request);
}
此外,如果我将警报更改为getAllResponseHeaders()以查看所有标头,我就看不到那里的location标头。如果我尝试用Firebug窥探原始站点的请求,它确实会在响应中显示location标头。请帮我解决我的问题。谢谢:)
另外,我也无法使用window.open(url, this.window.title);
在新标签页中打开一个链接,但由于这与其他内容没有直接关系,所以我会另发一个问题来询问它。
发布于 2010-04-09 04:08:01
我认为XHR的当前实现是位置无关的。换句话说,由于XHR以一种代码看不见的方式透明地遵循HTTP重定向,我怀疑整个XHR都是Location:不可知论的,只是去掉了头部。
实际上,现在我想起来了,如果XHR正在跟踪重定向,那么您看到的不是重定向响应的头部,而不是重定向本身的头部吗?
https://stackoverflow.com/questions/2603007
复制相似问题