B網頁的url: https://b.myweb.com
因為安全性的因素,JavaScript 會禁止 A、B 兩個網頁彼此互動,這是所謂的"同源準則"(same-origin policy),有一個簡單的方法可以解開這個限制,如下:
A網頁加上:
<script>
document.domain = "mywed.com";
</script>
B網頁加上:
<script>
document.domain = "mywed.com";
</script>
這樣兩個網頁就可以用 opener 等方式互動啦。
補充:
1. 這個方式只適用相同網域的不同子網域的兩個網頁,如果連網域都不同,就不適用喔。
2. 即便是相同子網域,其中一個有設定 document.domain ,另一個沒有設定,就不能互動喔。<參考>
Note: 為了讓子網域可以安全的存取其母網域,我們需要一起改變子、母網域的document.domain 為相同值,即使只是將母網域設回原始值也是必要,否則將會導致允許錯誤。
補充:
1. 這個方式只適用相同網域的不同子網域的兩個網頁,如果連網域都不同,就不適用喔。
2. 即便是相同子網域,其中一個有設定 document.domain ,另一個沒有設定,就不能互動喔。<參考>
Note: 為了讓子網域可以安全的存取其母網域,我們需要一起改變子、母網域的document.domain 為相同值,即使只是將母網域設回原始值也是必要,否則將會導致允許錯誤。
No comments:
Post a Comment