页面中嵌入帆软报表,帆软报表服务器和项目不是一个,出现跨域的问题,解决方案

页面中引入帆软报表,同时也有别的信息,需要进行信息的交互,但是帆软报表服务器是另外一个服务器,并且非同域名,那么就会出现跨域的问题,解决方案如下:

1、需要在帆软报表的点击js事件中引入一个和父页面同系统的一个页面,如下

var tarValue = this.options.form.getValueByName("textEditor0");//这里根据是报表还是表单用不同的方式,自己定义


var url = "http://192.168.101.226:8080/test/proxy.html?_=" + new Date().getTime()
+ "&tarValue=" + tarValue;
alert(url);
var iframe = document.getElementById('proxy');


if (!iframe) {
// 如果iframe还没有加进去,则加进去
iframe = document.createElement('iframe');
document.getElementsByTagName('head')[0].appendChild(iframe); 
iframe.setAttribute('name','proxy');
iframe.setAttribute('id','proxy');
}
iframe.setAttribute('src', url);

2、proxy.html中如果引用报表所在的父页面中的方法,看这个HTML在哪一级了,至少两级,帆软报表本身一级,父页面一级,所以调用父页面函数a的话,就需要

parent.parent.window.a();

执行这两个步骤即可。

你可能感兴趣的:(帆软报表)