var xhttp=new XMLHttpRequest();
xhttp.open('GET', 'foo.xml', false);
弹出F12 :SCRIPT5:访问被拒绝。在第95行,这是xhttp.open行。
我的JavaScript似乎格式正确,Firefox做了我认为应该做的事情。
我已经阅读了很多非常类似于此问题的问题,所以我查看了同源策略,但是我看不出它是如何应用的,因为foo.xml和它在同一个目录中html文件。我在我的本地Intranet上打开了脚本权限,并告诉迈克菲休息五分钟,这是肯定的。我甚至尝试以管理员身份运行IE,所以这不是真正的权限问题吗?为什么IE会被拒绝访问本地文件?
答案 0 :(得分:13)
也许您想查看以下链接:
答案 1 :(得分:5)
您可能在本地文件上有一个Mark-of-the-Web。有关说明,请参阅http://blogs.msdn.com/b/ieinternals/archive/2011/03/23/understanding-local-machine-zone-lockdown-restricted-this-webpage-from-running-scripts-or-activex-controls.aspx。
答案 2 :(得分:5)
此示例说明如何使用AJAX从任何网站提取资源。它适用于各种浏览器。我已经在IE 8-IE 10,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;
答案 3 :(得分:3)
如果找不到.replace方法的目标页面(我输入的页面名称不正确),也会遇到此错误消息(SCRIPT5:访问被拒绝。)。我知道因为它刚好发生在我身上,这就是为什么我去搜索有关错误信息含义的更多信息的原因。
答案 4 :(得分:1)
在IE7,IE8和IE9上,只需转到“设置” - >“网络选项” - >“安全性” - >“自定义级别”,然后将“其他”设置为“跨域访问数据源”下的安全设置更改为“启用”。
答案 5 :(得分:1)
最有可能的是,您需要通过SSL提供Javascript。
来源:https://www.parse.com/questions/internet-explorer-and-the-javascript-sdk
答案 6 :(得分:0)
我认为问题在于该文件在您的本地计算机上,并且IE拒绝访问,因为如果它允许脚本访问运行浏览器的comp上的文件,那将是一个巨大的安全漏洞。
如果您可以访问可以作为一个服务器使用的服务器或其他组件,也许您可以尝试将文件放在那个文件上,然后像在网站上一样运行脚本。
答案 7 :(得分:0)
可能您正在请求外部资源,这种情况下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);
}
答案 8 :(得分:0)
我在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
});
答案 9 :(得分:-1)
$.ajax({
url: '//freegeoip.net/json/',
type: 'POST',
dataType: 'jsonp',
success: function(location) {
alert(location.ip);
}
});
此代码也适用于https网站
答案 10 :(得分:-3)
打开Internet Explorer Developer Tool, 工具 - > F12开发人员工具。 (我想你也可以按 F12 来获取它)
将文档模式更改为标准。 (如果您更改文档模式),页面应自动刷新
应该修复问题。 享受