JS拒绝访问错误的产生原因及解决办法-Frame版JS跨域问题

分类:Javascript| 发布:camnprbubuol| 查看: | 发表时间:2011/9/13

报错:拒绝访问 该错误大部分产生在有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.设置浏览器的安全级别级别,使浏览器的安全校验失效。简单的办法是将之设置成信任站点

 

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/javascript/425.html