2011-07-04 93 views
2
var xmlReq, 
     xmlDoc; 

    xmlReq = new XMLHttpRequest(); 
    xmlReq.open("GET", filename, false); //synchronous GET 
    xmlReq.send(null); 

    xmlDoc = xmlReq.responseXML; 
    alert(xmlDoc); 

我試圖使用上面提到的代碼從本地文件系統加載xml。變量文件名是一個相對路徑(../Gfx/Sprite/test_sprite.xml),可以在本地運行,也可以在Web服務器上運行頁面。是什麼讓這更奇怪的是,我可以看到XML文件加載(在Safari瀏覽器中使用Web檢查器),但xmlReq.responseXML/xmlReq.responseText返回空...JavaScript從本地文件解析xml

我在做什麼錯在這裏?

+0

我想你需要使用這個xmlDoc = xmlReq.responseXML;裏面onreadystatechange只 –

+0

試過,然後重寫代碼(請參閱編輯)仍然沒有雪茄... –

+0

但沒有使用onreadystatechange這不會工作,你正在做異步請求,這意味着控制不會等待,直到請求被處理,所以你需要綁定一個事件偵聽器來檢查這個請求的狀態變化。所以把它換成舊的。 –

回答

1

Webkit不允許在本地文件系統上發出AJAX請求。

+0

是否有任何其他方式可以加載該xml文件? –

+0

應該可以使用一些flash來檢索xml –