润乾报表跨域问题解决方案
跨域访问报表,可以理解为在两台不同 段的机器上访问报表。
先简单介绍一下跨域的具体情况:
, 两台机器,分别部署了两个应用。
机器的 域名:
机器的 域名:
机器上部署了报表应用,是服务端; 机器是客户端。
在 应用的 中有如下配置:
!"#
"#!$ %"#
"#$&%%%'!() %"#
%!"#
然后在 B 机器的 *)+ 中通过 * 引入了 B 机器应用中的 ,-)+,
在 ,-)+ 中 通 过 '!!.!/0 1/!$1#%!2+%
+$!3!)+4/%+05去访问 机器上应用中的报表
(26 中的具体内容可见附件)
在 B 机器的 IE 地址栏中输入:
7&%%%'!%!2+%*)+
应用会跳转到:
$&%%%'!()%!2+%+$!3!)+4/%+
8+ 是个带参数模版的报表,其中有下拉数据集,下拉列表框和下拉日历。而在跨
域访问报表时,所表现出来的具体问题是:下拉框和下拉日历一律不能点击,点击时无任
何反应,且页面报脚本错误,提示:+ 拒绝访问。
出现这个错误的原因是:报表的下拉控件中用到一个名为 !9:的 )+ 方法,该方法本
书是拒绝跨域访问的。
js 跨域问题,是在一个域下的页面中通过 js 访问另一个不同域下的数据对象,出于安全性
考虑,几乎所有浏览器都不允许这种跨域访问。
这并非是报表产品的问题。
但是对于这种情况,报表目前有一种解决办法:使用 document.domain=“二级域名”的
方式。
使用 document.domain 方法有以下几个前提:
1. 在 web.xml 中只能配置域名和端口。
即将:
!"#
"#!$ %"#
"#$&%%%'!() %"#
%!"#
修改成: