2013-08-06 53 views
1

我寫了下面的Ajax文件,它將請求authanticate.xml文件進行身份驗證。「跨源只支持HTTP」和「DOMException.NETWORK_ERR 19」

var file_path = "var file_path = "C:/Users/sankett/Desktop/authanticate.xml"; 
    if(xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 

    xmlDoc=xmlhttp.responseXML; 
    x=xmlDoc.getElementsByTagName("person"); 

    for (i=0;i<x.length;i++) 
     { 
     if(document.getElementById("pswd").value == x[i].childNodes[1].nodeValue){ 
     document.getElementById("myDiv").innerHTML="AUTHENTICATED"; 
     } 
     else{ 
     document.getElementById("myDiv").innerHTML="ACCESS DENIED"; 
     } 
     } 
    } 
    } 

xmlhttp.open("GET",file_path,true); 
xmlhttp.send(); 

但瀏覽器顯示我的XMLHttpRequest無法加載文件:/// C:/Users/sankett/Desktop/authanticate.xml。 Cross origin are only supported for HTTPDOMException.NETWORK_ERR 19我錯過了什麼?

下面是我的XML文件:

<?xml version="1.0"?> 
<authenticate> 
    <person category="Admin"> 
     <username>Sanket</username> 
     <password>laurentiis</password> 
    </person> 
</authenticate> 
+0

authanticate.xml位於我的ajax文件所在的文件夾中。 – user2131465

回答

0

取決於哪個瀏覽器,您正在使用,它可能是一個預期的行爲。幾乎所有的瀏覽器,在給定本地文件路徑的情況下,嘗試通過file://協議打開文件。我知道WebKit將file://協議視爲不安全(即,無論文件實際位於何處,您都無法向此協議發出AJAX請求)。壁虎允許你爲我的子目錄上次我檢查,我不知道有關IE

最好的解決辦法是通過http://localhost來訪問文件,而HTTP協議的行爲更可靠。無論是在你的JS代碼中,還是在瀏覽器中打開頁面的時候。

+0

我如何使用它? – user2131465