document.domain實現js跨域

來源:互聯網
上載者:User

標籤:利用   網域名稱   相等   引入   不同   地址欄   無效   document   doc   

https://www.cnblogs.com/fsjohnhuang/archive/2011/12/07/2279554.html

document.domain

用來得到當前網頁的網域名稱。
比如在地址欄裡輸入:

javascript:alert(document.domain); //www.forjj.com

我們也可以給document.domain屬性賦值,不過是有限制的,你只能賦成當前的網域名稱或者基礎網域名稱。
比如:
javascript:alert(document.domain = "forjj.com"); //forjj.com
javascript:alert(document.domain = "www.forjj.com"); //www.forjj.com

上面的賦值都是成功的,因為www.forjj.com是當前的網域名稱,而forjj.com是基礎網域名稱。

但是下面的賦值就會出來"參數無效"的錯誤:
javascript:alert(document.domain = "cctv.net"); //參數無效
javascript:alert(document.domain = "ttt.forjj.com"); //參數無效

因為cctv.net與ttt.forjj.com不是當前的網域名稱也不是當前網域名稱的基礎網域名稱,所以會有錯誤出現。
這是為了防止有人惡意修改document.domain來實現跨域偷取資料。


利用document.domain 實現跨域:
前提條件:這兩個網域名稱必須屬於同一個基礎網域名稱!而且所用的協議,連接埠都要一致,否則無法利用document.domain進行跨域

Javascript出於對安全性的考慮,而禁止兩個或者多個不同域的頁面進行互相操作。
相同域的頁面在相互操作的時候不會有任何問題。

比如在:aaa.com的一個網頁(a.html)裡面 利用iframe引入了一個bbb.com裡的一個網頁(b.html)。
這時在a.html裡面可以看到b.html裡的內容,但是卻不能利用javascript來操作它。因為這兩個頁面屬於不同的域,在操作之前,js會檢測兩個頁面的域是否相等,如果相等,就允許其操作,如果不相等,就會拒絕操作。
這裡不可能把a.html與b.html利用JS改成同一個域的。因為它們的基礎網域名稱不相等。(強制用JS將它們改成相等的域的話會報跟上面一樣的"參數無效錯誤。")

所以如果在a.html裡引入aaa.com裡的另一個網頁,是不會有這個問題的,因為域相等。

有另一種情況,兩個子網域名稱:
aaa.xxx.com
bbb.xxx.com

aaa裡的一個網頁(a.html)引入了bbb 裡的一個網頁(b.html),
這時a.html裡同樣是不能操作b.html裡面的內容的。
因為document.domain不一樣,一個是aaa.xxx.com,另一個是bbb.xxx.com。

這時我們就可以通過Javascript,將兩個頁面的domain改成一樣的,
需要在a.html裡與b.html裡都加入:

document.domain = "xxx.com";
這樣這兩個頁面就可以互相操作了。也就是實現了同一基礎網域名稱之間的"跨域"。

document.domain實現js跨域

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.