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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值