日期:2014-05-16  浏览次数:20387 次

JS拒绝访问错误的产生原因及解决办法(zhuan)

JS拒绝访问错误的产生原因及解决办法

js报错:拒绝访问 该错误大部分产生在有iFrame的页面。这个时间你需要检查一下2个页面OPEN出来的地址。

产生的原因是因为打开页面的地址与当前页面的地址不在一个域内,这样浏览器的安全机制会阻止JS跨域的操作。

案例:在一个系统中,使用iFrame包含了第三方(另一个domain的)的页面,两个系统部署在同一台机器上,iFrame包含的页面首页是个登陆界面,在iFrame所在的页面中使用脚本获取登陆界面的内容,并且对用户名和密码域赋值并提交,以实现自动登陆。但是,如果以http://10.27.1.31:8080 来访问系统,该功能正常,以http://www.31km.cn:8080 访问则会提示脚本错误:拒绝访问。

浏览器认为http://10.27.1.31:8080http://www.31km.cn:8080?不是一个域(http://www.31km.cn:与http://31km.cn也是不同域),因而拒绝访问,这是浏览器的安全机制

但是实际上很多时候,我们是对一个域的操作。

解决办法:1.检查操作的2个页面打开地址是否在一个域下,如果不是,想办法用绝对地址,使之在一个域内

2.设置浏览器的安全级别级别,使浏览器的安全校验失效。简单的办法是将之设置成信任站点