国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js設置document.domain實現跨域的注意點分析

2019-11-20 12:26:10
字體:
來源:轉載
供稿:網友

本文實例分析了js設置document.domain實現跨域的注意點。分享給大家供大家參考。具體分析如下:

document.domain
用來得到當前網頁的域名。
比如在地址欄里輸入:

復制代碼 代碼如下:
javascript:alert(document.domain); //m.survivalescaperooms.com

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

復制代碼 代碼如下:
javascript:alert(document.domain = "VeVB.COm"); //VeVB.COm
javascript:alert(document.domain = "m.survivalescaperooms.com"); //m.survivalescaperooms.com

上面的賦值都是成功的,因為m.survivalescaperooms.com是當前的域名,而VeVB.COm是基礎域名。

但是下面的賦值就會出來"參數無效"的錯誤:

復制代碼 代碼如下:
javascript:alert(document.domain = "cctv.net"); //參數無效
javascript:alert(document.domain = "m.survivalescaperooms.com"); //參數無效

因為cctv.net與m.survivalescaperooms.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";

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

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蚌埠市| 林芝县| 佛坪县| 东城区| 祁阳县| 沭阳县| 勃利县| 伊金霍洛旗| 进贤县| 崇左市| 龙江县| 广昌县| 上饶市| 牟定县| 从江县| 巧家县| 获嘉县| 达拉特旗| 滁州市| 叶城县| 衡阳县| 通榆县| 三穗县| 渑池县| 临桂县| 白山市| 安阳县| 南部县| 景东| 太和县| 宝清县| 阳高县| 永修县| 渝北区| 龙州县| 固阳县| 安福县| 廉江市| 泊头市| 分宜县| 葫芦岛市|