【问题标题】:XMLHttpRequest problemXMLHttpRequest 问题
【发布时间】:2011-02-05 21:02:24
【问题描述】:

我正在尝试在 firefox 扩展中使用 XMLHttpRequest 进行“POST”,然后尝试获取“Location”标题并在新选项卡中打开它。出于某种原因,XMLHttpRequest 不包含位置标头。

我的代码

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() 以查看所有标题,我只是看不到位置标题。如果我尝试使用 Firebug 监视原始站点的请求,它会在响应中显示位置标头。请帮我解决我的问题。谢谢:)

附:我也无法使用window.open(url, this.window.title); 在新标签中打开链接,但由于这与其余部分没有直接关系,我将发布一个单独的问题来询问它。

【问题讨论】:

标签: javascript firefox xmlhttprequest header firefox-addon


【解决方案1】:

我认为 XHR 的当前实现是 Location: 不可知论的。换句话说,由于 XHR 以对您的代码不可见的方式透明地遵循 HTTP 重定向,我怀疑整个 XHR 蜡球已被设置为 Location: agnostic 并且标头只是被剥离了。

[edit] 实际上,现在我想起来了,如果 XHR 遵循重定向,那么它不会是您看到的重定向响应的标头,而不是重定向本身的标头?

【讨论】:

  • 抱歉,我真的不明白“位置:不可知论”是什么意思。我想要什么?
  • 我的意思是 XHR 暴露给程序员的 API 没有跟随 Location: 重定向的概念。它在幕后神奇地处理。另请参阅我刚刚添加到答案中的edit
猜你喜欢
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多