SCRIPT5:访问在xmlhttprequest的IE9中被拒绝

var xhttp=new XMLHttpRequest(); xhttp.open('GET', 'foo.xml', false); 

F12popup:SCRIPT5:访问被拒绝。 95行,这是xhttp.open行。

我的JavaScript看起来很完美,Firefox做我认为应该做的事情。

我已经阅读了很多与这个非常相似的问题,所以我已经检查了相同的原始策略,但是我不明白它是如何应用的,因为foo.xml和html文件在同一个目录中。 我打开了本地Intranet上的脚本权限,并告诉迈克菲需要rest五分钟。 我甚至试图运行IE作为pipe理员,所以这不能真的是一个权限问题,可以吗? 为什么IE会被拒绝访问本地文件?

也许你想检查下面的链接:

  • 使用XMLHttpRequest或XDomainRequest进行跨域JavaScript请求
  • XMLHttpRequest – Mozilla开发者networking
  • jQuery x域请求的一个很好的总结
  • 哪个浏览器支持x域?

这个例子说明了如何使用AJAX从任何网站获取资源。 它适用于浏览器。 我已经testing了IE8-IE10,safari,chrome,firefox,opera。

 if (window.XDomainRequest) xmlhttp = new XDomainRequest(); else if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest(); else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("GET", "http://api.hostip.info/get_html.php", false); xmlhttp.send(); hostipInfo = xmlhttp.responseText.split("\n"); var IP = false; for (i = 0; hostipInfo.length >= i; i++) { if (hostipInfo[i]) { ipAddress = hostipInfo[i].split(":"); if (ipAddress[0] == "IP") { IP = ipAddress[1]; } } } return IP; 

在IE7,IE8和IE9上,进入设置 – > Internet选项 – >安全 – >自定义级别,并将“其他”下的安全设置更改为“通过域访问数据源”。

如果没有find.replace方法的目标页面(我input了不正确的页面名称),也会遇到此错误消息(SCRIPT5:Access is denied。)。 我知道,因为它发生在我身上,这就是为什么我去寻找一些关于错误信息含义的更多信息。

最有可能的是,您需要通过SSL提供Javascript。

资料来源: https : //www.parse.com/questions/internet-explorer-and-the-javascript-sdk

我认为问题在于文件在本地计算机上,IE拒绝访问,因为如果它允许脚本访问运行浏览器的文件,那将是一个巨大的安全漏洞。
如果您可以访问服务器或另一个可以用作一个服务器的组件,也许可以尝试将文件放在该服务器上,然后像在网站上一样运行脚本。

可能你正在请求一个外部资源,这种情况下IE需要XDomain对象。 请参阅下面的示例代码,了解如何针对所有使用跨域的浏览器进行ajax请求:

 Tork.post = function (url,data,callBack,callBackParameter){ if (url.indexOf("?")>0){ data = url.substring(url.indexOf("?")+1)+"&"+ data; url = url.substring(0,url.indexOf("?")); } data += "&randomNumberG=" + Math.random() + (Tork.debug?"&debug=1":""); var xmlhttp; if (window.XDomainRequest) { xmlhttp=new XDomainRequest(); xmlhttp.onload = function(){callBack(xmlhttp.responseText)}; } else if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200){ Tork.msg("Response:"+xmlhttp.responseText); callBack(xmlhttp.responseText,callBackParameter); Tork.showLoadingScreen(false); } } xmlhttp.open("POST",Tork.baseURL+url,true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send(data); } 

IE10遇到了类似的问题。 我有一个解决方法,使用jQuery的ajax请求来检索数据:

 $.ajax({ url: YOUR_XML_FILE aync: false, success: function (data) { // Store data into a variable }, dataType: YOUR_DATA_TYPE, complete: ON_COMPLETE_FUNCTION_CALL }); 
  $.ajax({ url: '//freegeoip.net/json/', type: 'POST', dataType: 'jsonp', success: function(location) { alert(location.ip); } }); 

这个代码也可以用于https网站

打开Internet Explorer开发人员工具,工具 – > F12开发人员工具。 (我想你也可以按F12来得到它)

文档模式更改为标准 。 (如果更改文档模式 ,页面应该自动刷新)

问题应该得到解决。 请享用