1

有一个我无法克服的错误。它涉及读取本地文件。代码如下,完全可以在 Chrome 中运行。在 IE10 上,它适用于 jQuery 而不是 xmlHTTP。xmlHTTP 路由会SCRIPT5: Access is Denied报错。

我在代码中看不到任何跨域操作,但为了确保灵活性,我更改了安全设置以允许跨域代码,但仍然无法正确执行它。非常感谢大家的专业知识!

外部引用是test.txt与该 HTML 文件位于同一目录中的一个简单文件,并且包含一行文本。

<!DOCTYPE html>
<html>
 <head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js">
</script>
</head>
<body>
<script>
function getXmlHttp() {
   if (window.XMLHttpRequest) {
      xmlhttp=new XMLHttpRequest();
   } else if (window.ActiveXObject) {
      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
   }
   if (xmlhttp == null) {
      alert("Your browser does not support XMLHTTP.");
   }
   return xmlhttp;
}


function readFileHttp(fname, callback) {
   xmlhttp = getXmlHttp();
   xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState==4 ) { 
          callback(xmlhttp.responseText); 
      }
   }
   xmlhttp.open("GET", fname, true);
   xmlhttp.send(null);
}

function handleTextFile(e){
   var strOutput = String(e);
   var result = document.getElementById('xmlHTTPText');
   result.innerHTML = strOutput;
}

function doXMLHTTP(){
   readFileHttp("./test.txt", handleTextFile);
}

function handleJQTextFile(e){
   var strOutput = String(e);
   var result = document.getElementById('jQueryText');
   result.innerHTML = strOutput;
}

function doJQuery(){
   $.get("./test.txt", handleJQTextFile);
}

</script>
<button onclick="doJQuery()">doJQuery</button>
<button onclick="doXMLHTTP()">doXMLHTTP</button>
<BR />
<A>jQueryText:&nbsp;</A><A id="jQueryText"></A>
<BR />
<A>xmlHTTPText:&nbsp;</A><A id="xmlHTTPText"></A>

</body>
</html>
4

0 回答 0