Msxml2.XMLHTTP.6.0和HTTP 301已永久移动重定向

时间:2012-02-27 13:00:23

标签: javascript ajax xmlhttprequest msxml

我被告知MsXML2遵循重定向。但是,当访问已移动的URL时,我从脚本中收到“HTTP 0”错误。

我需要让它工作的原因是因为这是一个由30万用户使用的Windows(补充工具栏)小工具。我正在移动网站,并希望所有旧版本的电话都能通过。

这是简化的代码:

function MyHttpCall() {
  var httpReq = new ActiveXObject("Msxml2.XMLHTTP.6.0");
  httpReq.onreadystatechange = function() {
    if (httpReq.readyState < 4) return;
    if (httpReq.status != 200) alert("HTTP " + httpReq.status);

    alert ("Houston we have contact");
  }

  httpReq.open("GET", myURL, true);
  httpReq.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
  httpReq.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
  httpReq.setRequestHeader("Pragma", "no-cache");
  httpReq.setRequestHeader("If-Modified-Since", "Tue, 01 Jan 2008 00:00:00 GMT");
  httpReq.send();
}

我认为这与httpReq.status!= 200有关,但我认为一旦状态发生变化,readystatechange就会不断触发事件。为HTTP 301启动一个,为HTTP 200启动另一个。

1 个答案:

答案 0 :(得分:1)

在Microsoft文章中,MsXML中不允许跨域重定向。最有可能的情况就是这样。