有一个我无法克服的错误。它涉及读取本地文件。代码如下,完全适用于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: </A><A id="jQueryText"></A>
<BR />
<A>xmlHTTPText: </A><A id="xmlHTTPText"></A>
</body>
</html>