2012-02-27 146 views
1

我被告知MsXML2遵循重定向。但是,当访问已移动的URL时,我会从脚本中收到“HTTP 0”错误。Msxml2.XMLHTTP.6.0和HTTP 301永久移动重定向

我需要使它工作的原因是因为这是一个由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启动另一个。

+0

[跨域请求(XDR)](http://msdn.microsoft.com/en-us/library/dd573303(v = vs.85).aspx) – Bakudan 2012-04-03 20:34:26

回答

1

对于Microsoft文章,在MsXML中不允许跨域重定向。那很可能是这种情况。