您的位置:首页 > 其它

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

2015-05-31 09:30 323 查看
如果我们的js文件中,包含有Ajax代码时,引用这个js文件的html文件,直接在本地打开测试就会出现这个错误提示:

如下所示:

util.js文件

function ajax(url,options,type){
var oAjax=null;
var type=type || "GET";
//alert(type);
if(window.XMLHttpRequest){
oAjax=new XMLHttpRequest();

}
else{
oAjax=new ActiveXObject('Microsoft.XMLHTTP');
}

oAjax.onreadystatechange=function(){
if (oAjax.readyState==4) {
if (oAjax.status==200) {
options.onsuccess(oAjax.responseText);
}
else{
options.onfail();
};
};
}

url=url+"?name="+options.data.name+"&password="+options.data.password+"&t="+Math.random();
oAjax.open(type,url,true);
oAjax.send();
}


假设util.js文件中还有其他我们需要的函数,当我们把util.js引入到html文件中后,本地浏览器打开测试就会提示错误

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>task0002</title>
<script type='text/javascript' src='js/util.js'></script>
</head>
<body>
<textarea name="hobby" id="hobby" cols="30" rows="10"></textarea><br/>
<input type="button" id='btn' value='过滤'>
<script>
var oTxt=document.getElementById('hobby');
var btn=document.getElementById('btn');
var p=document.createElement('p');
document.body.appendChild(p);
btn.onclick=function(){
var hobbys=oTxt.value;
var ary=hobbys.split(/[,、;\n\s,\u3000]/);
ary=uniqArray(ary);
p.innerHTML="";
p.innerHTML="爱好:"+ary.join("<br/>");
}
</script>
</body>
</html>


原因是:当本地浏览打开页面时,出现了跨域问题,所以提示没有权限

解决方法:

1. 将ajax代码部分放到html文件中,就不会有这个问题

2. 将项目文件夹放到服务器上,就会默认在一个域内,不会出现跨域问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: