2011-04-28 70 views
0

我想解析一個RSS feed使用JavaScript,最近遇到了一個問題,打開一個XML文件從本地主機和Web服務器(我總是當我在本地主機上工作時,始終使用http://關鍵字訪問我的本地文件)。我在所有瀏覽器中收到XML狀態0而不是狀態200(已建立)。只有當我嘗試打開託管在服務器上的XML文件時纔會出現此問題。下面是我:當我打開未在服務器上託管的XML本地文件Javascript XML http請求無法打開服務器的RSS文件,XML狀態= 0

if(window.ActiveXObject)//IE 
    xml_req = new ActiveXObject("Microsoft.XMLHTTP"); 
else if(window.XMLHttpRequest) 
    xml_req = new XMLHttpRequest(); 
    else alert('no ajax support'); 

xml_req = new XMLHttpRequest(); 
var url = "http://www.something.net/rss.xml"; 
xml_req.open("GET", url, true); 

xml_req.onreadystatechange = function(){ 
    if(xml_req.readyState == 4){ 
     if(xml_req.status == 200){ 
      if(xml_req.responseText != null) 
       .....//DO STUFF 
      else{ 
       alert("Error"); 
       return false; 
      } 
     } 
     else{ 
        //THIS IS WHERE THE ERROR OCCURS,STATUS=0 INSTEAD OF 200 
       alert("XML Status = " + xml_req.status + xml_req.statusText);} 
    } 
} 

,一切工作正常。例如,下面的代碼打開本地主機內的RSS文件就好:

var url = "rssLocalhost.xml"; 
xml_req.open("GET", url, true); 

請幫忙!希望任何人有任何建議。謝謝!

回答

1

can't make requests to other sites。您需要通過自己的服務器代理數據,或者使用JSON-P數據源。

+0

這真的很有幫助,謝謝你的回答。因此,如果我嘗試從JSON-P數據源中使用數據,數據是以原始XML格式還是必須更改解析器中的某些代碼? (因爲我的解析器目前只解析XML文件) – 2011-04-28 10:16:16

+0

如果你有一個JSON-P數據源,那麼它將在JSON-P中,而不是XML。 – Quentin 2011-04-28 10:21:14

+0

是的,看起來如果我使用JSONP,它會容易得多,但對我來說這是一個很好的體驗:) – 2011-04-28 19:23:29