JS跨域問題在系統與系統的交互過程中會經常出現,比如一個系統的某個頁面引用了另外一個系統中頁面的內容,并通過引用頁面的功能來刷新父頁面或者另外的一個頁面。這些交互就會出現跨域問題了。
下面我畫了一個簡單的圖來說明:
圖文描述:
1、page1的來源是一個A系統,page2是和iframe.aspx是同一個系統B;
2 、iframe.aspx中包含IFrame1和IFrame2;
3、IFrame1是引用page1的頁面,IFrame2是引用page2的頁面;
4、 需要實現的功能就是點擊IFrame1的Button來刷新IFrame2的文本框。
下面是自己的一些方案,如果你有什么建議可以大家一起討論:
1、使用代理
1在系統B中建立一個頁面,里面包括用來刷新IFrame2的JS腳本,腳本有點特殊:window.parent.parent.document.getElementById("IFrame2").src="page2.aspx"; 該文件命名為:iframeProxy.aspx
2、在系統A的page1.aspx中引用iframeProxy.aspx;
3、這樣,調用的JS與A系統就是在同一個域下面的了;
2
統一域名
1、修改域名,在C:\WINDOWS\system32\drivers\etc\hosts文件中修改,把系統A的訪問地址設置為:a.gaizai.com,把B系統的訪問地址修改為b.gaizai.com;
2、在A系統的頁面page1.aspx的head標簽內加入
<script language="javascript" type="text/javascript">
// <!CDATA[
document.domain="gaizai.com";
// ]]>
</script>,在iframe.aspx中也同樣加入前面的內容,