成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS設(shè)置document.domain實現(xiàn)跨域

antz / 3082人閱讀

摘要:設(shè)置實現(xiàn)跨域用來得到當(dāng)前網(wǎng)頁的域名。這是為了防止有人惡意修改來實現(xiàn)跨域偷取數(shù)據(jù)。也就是實現(xiàn)了同一基礎(chǔ)域名之間的跨域。

JS設(shè)置document.domain實現(xiàn)跨域

@(StuRep)

document.domain

用來得到當(dāng)前網(wǎng)頁的域名。
比如在地址欄里輸入:

代碼如下:
javascript:alert(document.domain); //www.jb51.net

我們也可以給document.domain屬性賦值,不過是有限制的,你只能賦成當(dāng)前的域名或者基礎(chǔ)域名。
比如:

代碼如下:
javascript:alert(document.domain = "jb51.net"); //jb51.net
javascript:alert(document.domain = "www.jb51.net"); //www.jb51.net

上面的賦值都是成功的,因為www.jb51.net是當(dāng)前的域名,而jb51.net是基礎(chǔ)域名。
但是下面的賦值就會出來"參數(shù)無效"的錯誤:

代碼如下:
javascript:alert(document.domain = "cctv.net"); //參數(shù)無效
javascript:alert(document.domain = "www.jb51.net"); //參數(shù)無效

因為cctv.net與www.jb51.net不是當(dāng)前的域名也不是當(dāng)前域名的基礎(chǔ)域名,所以會有錯誤出現(xiàn)。這是為了防止有人惡意修改document.domain來實現(xiàn)跨域偷取數(shù)據(jù)。

利用document.domain 實現(xiàn)跨域:
前提條件:這兩個域名必須屬于同一個基礎(chǔ)域名!而且所用的協(xié)議,端口都要一致,否則無法利用document.domain進行跨域.
Javascript出于對安全性的考慮,而禁止兩個或者多個不同域的頁面進行互相操作。
相同域的頁面在相互操作的時候不會有任何問題。

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

所以如果在a.html里引入aaa.com里的另一個網(wǎng)頁,是不會有這個問題的,因為域相等。
有另一種情況,兩個子域名:
aaa.xxx.com
bbb.xxx.com
aaa里的一個網(wǎng)頁(a.html)引入了bbb 里的一個網(wǎng)頁(b.html),
這時a.html里同樣是不能操作b.html里面的內(nèi)容的。
因為document.domain不一樣,一個是aaa.xxx.com,另一個是bbb.xxx.com。
這時我們就可以通過Javascript,將兩個頁面的domain改成一樣的,
需要在a.html里與b.html里都加入:

代碼如下:
document.domain = "xxx.com";

這樣這兩個頁面就可以互相操作了。也就是實現(xiàn)了同一基礎(chǔ)域名之間的"跨域"。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79860.html

相關(guān)文章

  • 大話javascript 5期:跨域

    摘要:同源策略所謂同源是指協(xié)議,域名,端口均相同。同源策略是瀏覽器的一個安全功能,不同源的客戶端腳本在沒有明確授權(quán)的情況下,不能讀寫對方資源。需注意的是由于同源策略的限制,所讀取的為跨域請求接口所在域的,而非當(dāng)前頁。 一、什么是跨域 1.URL解析 URL (Uniform Resource Locator )統(tǒng)一資源定位符(URL)是用于完整地描述Internet上網(wǎng)頁和其他資源的地址的...

    jzzlee 評論0 收藏0
  • 前端常見跨域解決方案(全)

    摘要:需注意的是由于同源策略的限制,所讀取的為跨域請求接口所在域的,而非當(dāng)前頁。目前,所有瀏覽器都支持該功能需要使用對象來支持,也已經(jīng)成為主流的跨域解決方案。反向代理接口跨域跨域原理同源策略是瀏覽器的安全策略,不是協(xié)議的一部分。 什么是跨域? 跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源,這里跨域是廣義的。 廣義的跨域: 1.) 資源跳轉(zhuǎn): A鏈接、重定向、表單提交 2.) 資源...

    canger 評論0 收藏0
  • ajax之面試必問跨域問題

    摘要:可以說是構(gòu)建在同源策略基礎(chǔ)之上的,瀏覽器只是針對同源策略的一種實現(xiàn)。只能設(shè)置為主域名,不可以在中將設(shè)置為。問題安全性,當(dāng)一個站點被攻擊后,另一個站點會引起安全漏洞。在此處執(zhí)行利用和這個辦法比較繞,但是可以解決完全跨域情況下的腳步置換問題。 ajax之面試必問跨域問題,如果你知道jsonp就弱爆了,往深處稍微問那么一丟丟,你就會被虐的萬劫不復(fù)...個人總結(jié)ajax: 1、什么是跨域2、d...

    wind3110991 評論0 收藏0
  • ajax之面試必問跨域問題

    摘要:可以說是構(gòu)建在同源策略基礎(chǔ)之上的,瀏覽器只是針對同源策略的一種實現(xiàn)。只能設(shè)置為主域名,不可以在中將設(shè)置為。問題安全性,當(dāng)一個站點被攻擊后,另一個站點會引起安全漏洞。在此處執(zhí)行利用和這個辦法比較繞,但是可以解決完全跨域情況下的腳步置換問題。 ajax之面試必問跨域問題,如果你知道jsonp就弱爆了,往深處稍微問那么一丟丟,你就會被虐的萬劫不復(fù)...個人總結(jié)ajax: 1、什么是跨域2、d...

    alaege 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<