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并打印”测试,结果能正常出打印预览为正确