頁面中嵌入帆軟報表,帆軟報表伺服器和專案不是一個,出現跨域的問題,解決方案

愛人間發表於2017-08-02

頁面中引入帆軟報表,同時也有別的資訊,需要進行資訊的互動,但是帆軟報表伺服器是另外一個伺服器,並且非同域名,那麼就會出現跨域的問題,解決方案如下:

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();

執行這兩個步驟即可。

相關文章