解决调用Iframe引入跨域访问页js方法问题

来源:互联网 发布:泰坦显卡 知乎 编辑:程序博客网 时间:2024/05/21 22:58

Js跨域问题是web开发人员最常碰到的一个问题之一。所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下的数据对象,出于安全性考虑,几乎所有浏览器都不允许这种跨域访问,这就导致在一些ajax应用中,使用跨域的web service会成为一个问题。

本文章所介绍的用例为:

1有两个应用,一个为.net平台,另一为报表平台(如润乾设计器demo),两个应用在同一台服务器部署,只不过端口不同

2 .net平台有a.html页面,其内采用iframe引入润乾报表(jsp解析),同时a.html页面有一个js方法,该方法除处理本身页面的事件外,还要同时触发报表打印

 

这里的问题是,如果我们直接在a.html页面的js中调用报表页面的打印方法(report1_print())的话,浏览器将报“没有权限”,因此涉及跨域访问问题。

 

那么,既然不能直接访问报表页的方法,我们可以考虑报表平台内(一个域)页面间js的访问肯定是没问题的,因此可变相做成让a.html访问报表平台内其他页面(如open.jsp),然后再让该页面触发iframe中src页面的方法。

 

附件为测试实例。

操作方式:

1 可讲a.html放到任意非报表平台应用

2 将open.jsp、showR.jsp放到润乾设计器demo的reportJsp文件夹下

3 将1.raq放到demo的reportFiles下

4 访问a.html页面,并点击页面“XX并打印”测试,结果能正常出打印预览为正确

 附件

0 0
原创粉丝点击