日期:2014-05-16  浏览次数:20422 次

js读取指定路径下xml文件 拒绝访问
我现在使用default.aspx 来读取xml文件,但是指定目录就拒绝访问,
不指定目录就是空文件。
  <script language="javascript" type="text/javascript" >
  function loadXML(xmlFile) {
  var xmlDoc;
  if (window.ActiveXObject) {
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.load(xmlFile);
  }
  else if (document.implementation && document.implementation.createDocument) {
  xmlDoc = document.implementation.createDocument("", "", null);
  xmlDoc.async = false;
  xmlDoc.load(xmlFile);
  } else {
  alert('您的浏览器不支持该系统脚本!');
  }
  return xmlDoc;
  }  
alert(9);
  var xmlDoc = loadXML("myfile.xml"); 
  //var xmlDoc = loadXML("E:\TEST\myfile.xml"); 
  //xmlDoc.load("myfile.xml");
   
  alert(xmlDoc);
  </script>
文件路径放在和 default.aspx 相同的路径。
希望大侠给予解释为什么不能读取文件。

------解决方案--------------------
看到你说default.aspx, 那么这个页面肯定是访问的一段服务器URL来打开的吧, 那么他的域权限应该是Internet的权限, 而使用前台JS打开本地文件的权限是需要本地权限的, 所以是不可能实现的, 不然你随便访问一个网站, 人家网站还不能把你的电脑里的文件给看光了啊

不过有另外的办法可以解决:
1. 如果你的网站只是给你一个人使用, 并且可以不使用动态技术的话, 就是说不使用ASPX, 那么就做成一个静态的HTML, 直接双击打开, 这样就是本地权限了, 再打开IE只会弹一个安全提示, 然后就能访问了
2. 把你的网站加入到信任站点, 并把安全设置到最低
3. 在服务器ASPX中就将XML读取好, 然后作为字符串传给前台的JS, 这样前台JS就不用去读取那个文件了