[XMLHttpRequest访问被拒绝,但试图从Web服务器位置访问文件-IE8

问题描述 投票:0回答:1

我正在使用javascript尝试使用xmlhttprequest访问url路径。该代码可以与activexobject正常工作(我不想使用activex对象)。当我尝试使用xmlhttprequest调用它时,它不起作用。它给出一个错误,指出访问被拒绝。我在这里使用IE8版本。我已经尝试了以下解决方法

  • 启用“在Internet中跨域访问数据源选项”

  • 添加受信任的站点

if(src) //scr = templates/mytemplate
{
	try{
	var xhr= new XMLHttpRequest();   //new ActiveXObject("Microsoft.XMLHTTP"); works fine 
xhr.onreadystatechange=function()
{
	if(xhr.readyState==4)
{
  log.profile(src);
if(xhr.status==200||xhr.status==0)
{
	//do some action
}
}

element.html(xhr.responseText);
log.profile(src);
xhr.open("GET",src,true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(null);
}}catch(e){
	alert("unable to load templates"+e); // here i am getting error saying acess denaied 
}
javascript internet-explorer internet-explorer-8 activex activexobject
1个回答
0
投票

[这里,您收到访问被拒绝的错误。 看起来您直接尝试在IE浏览器中运行HTML页面。您需要将网页托管在任何Web服务器上。为了进行测试,我将此示例页面托管在IIS服务器上。比您可以尝试从IE访问网页更有助于访问该网页而不会出现此错误。

我尝试使用此示例代码进行测试,并使用IE 11(IE-8文档模式)对其进行了测试。

<!DOCTYPE html>
<html>
<body>

<h2>Using the XMLHttpRequest Object</h2>

<div id="demo">
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</div>

<script>
function loadXMLDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "xmlhttp_info.txt", true);
  xhttp.send();
}
</script>

</body>
</html>

输出:

enter image description here

根据我的测试结果,代码在IE-8文档模式下工作正常,因此它也应在IE-8浏览器中工作。

© www.soinside.com 2019 - 2024. All rights reserved.