2012-02-27 93 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中不允許跨域重定向。那很可能是這種情況。