2016-07-10 67 views
0

我想读取本地存储的xml,并且想通过javascript读取/写入。 我的代码如下从javascript读取本地xml

function saveBaseValue() 
{ 
    var xmlhttp; 
    var XMLname="file:///C:/Users/setting.xml" 
    if (window.XMLHttpRequest) 
    { 
    xmlhttp=new window.XMLHttpRequest(); 
    xmlhttp.open("GET",XMLname,false); 
    alert(xmlhttp.responseXML); 
    } 

} 

在这种情况下,xmlhttp.responseXML为空。

+0

使用'XMLHttpRequest''。onload'事件处理函数来读取异步请求的结果。 'xmlhttp.onload = function(){alert(xmlhttp.responseXML)};' – guest271314

+1

[xmlhttprequest for local files]可能重复(http://stackoverflow.com/questions/7683596/xmlhttprequest-for-local-files) –

+0

guest271314:如果我想要同步请求,该怎么办? –

回答

2

你可以通过使用下面的代码来实现你的目标。

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function saveBaseValue() 
{ 
    var xmlhttp; 
    var XMLname="file:///C:/Users/setting.xml" 
    if (window.XMLHttpRequest) 
    { 
    xmlhttp=new window.XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() 
    { 
     if (xmlhttp.readyState == 4) 
     {  
     alert(xmlhttp.responseXML); 
     } 
    }; 
    xmlhttp.open("GET",XMLname,false); 
    xmlhttp.send(); 
    } 
} 
saveBaseValue(); 
</script> 
</head> 
<body>  
    <h1>Test</h1> 
</body> 
</html> 

但默认情况下你的浏览器将不会允许您访问这个本地文件,因为这存在安全问题,但如果反正你要访问它,然后关闭所有Chrome活动,得到了命令提示符下,更改目录您的chrome.exe存在并在命令下运行。

.\chrome.exe --allow-file-access-from-files --disable-web-security