js报错:拒绝访问 该错误大部分产生在有iFrame的页面。这个时间你需要检查一下2个页面OPEN出来的地址。
产生的原因是因为打开页面的地址与当前页面的地址不在一个域内,这样浏览器的安全机制会阻止JS跨域的操作。
案例:在一个系统中,使用iFrame包含了第三方(另一个domain的)的页面,两个系统部署在同一台机器上,iFrame包含的页面首页是个登陆界面,在iFrame所在的页面中使用脚本获取登陆界面的内容,并且对用户名和密码域赋值并提交,以实现自动登陆。但是,如果以http://127.0.0.1:8080 来访问系统,该功能正常,以http://www.camnpr.com:8080 访问则会提示脚本错误:拒绝访问。
浏览器认为http://127.0.0.1:8080 与http://www.camnpr.com:8080 不是一个域(http://www.camnpr.com:与http://camnpr.com也是不同域),因而拒绝访问,这是浏览器的安全机制
但是实际上很多时候,我们是对一个域的操作。
解决办法:
1.检查操作的2个页面打开地址是否在一个域下,如果不是,想办法用绝对地址,使之在一个域内
2.设置浏览器的安全级别级别,使浏览器的安全校验失效。简单的办法是将之设置成信任站点
3.在页面中分别加入:document.domain="XXX.com";