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