當前位置:首頁 » 密碼管理 » chrome跨域訪問

chrome跨域訪問

發布時間: 2023-11-01 09:17:56

⑴ 說明跨域產生的原因是什麼

跨域請求存在的原因:由於瀏覽器的同源策略,即屬於不同域的頁面之間不能相互訪問各自的頁面內容。
跨域的方式

1.前端的方式: possMessage,window.name,document.domain,image.src(得不到數據返回),jsonP(script.src後台不配合得不到數據返回),style.href(得不到數據返回)

一.imge.src,script.src,style.href 不受同源策略的影響可以載入其他域的資源,可以用這個特性,向伺服器發送數據。最常用的就是使用image.src 向伺服器發送前端的錯誤信息。image.src 和style.href 是無法獲取伺服器的數據返回的,script.src 伺服器端配合可以得到數據返回。

二possMessage,window.name,document.domain 是兩個窗口直接相互傳遞數據。

(1)possMessage 是HTML5中新增的,使用限制是 必須獲得窗口的window 引用。IE8+支持,firefox,chrome,safair,opera支持

(2)window.name ,在一個頁面中打開另一個頁面時,window.name 是共享的,所以可以通過window.name 來傳遞數據,window.name的限制大小是2M,這個所有瀏覽器都支持,且沒有什麼限制。

3) document.domain 將兩個頁面的document.domain 設置成相同,document.domain 只能設置成父級域名,既可以訪問,使用限制:這頂級域名必須相同

2.純後端方式: CORS,伺服器代理

CORS 是w3c標準的方式,通過在web伺服器端設置:響應頭Access-Cntrol-Alow-Origin 來指定哪些域可以訪問本域的數據,ie8&9(XDomainRequest),10+,chrom4 ,firefox3.5,safair4,opera12支持這種方式。

伺服器代理,同源策略只存在瀏覽器端,通過伺服器轉發請求可以達到跨域請求的目的,劣勢:增加伺服器的負擔,且訪問速度慢。

3.前後端結合:JsonP

script.src 不受同源策略的限制,所以可以動態的創建script標簽,將要請求數據的域寫在src 中參數中附帶回調的方法,伺服器端返回回調函數的字元串,並帶參數。

⑵ 為什麼Mac下了chrome谷歌瀏覽器卻無法訪問網站

Mac下了chrome谷歌瀏覽器卻無法訪問網站的原因:

1、跨域訪問受阻

2、這個網站不同域名之間,未設置好允許訪問的白名單

3、系統性能問題

拓展相關解決方法:

1、跨域訪問受阻可以在Chrome瀏覽器中,按下F12,點擊開發者工具中的Console,進入控制台。

2、面向普通網站訪問者用戶是沒有辦法解決問題的,只能等待該網站做好相應改進,才能正常訪問網頁。面向網站開發人員的話可以在某域名下使用Ajax向另一個域名下的頁面請求數據,會遇到跨域問題。另一個域名必須在response中添加 Access-Control-Allow-Origin 的header,才能讓前者成功拿到數據。

3、清空緩存

4、重新安裝過一遍

⑶ js操作iframe的一些方法介紹

獲得iframe的window對象 存在跨域訪問限制

chrome iframeElement contentWindow firefox iframeElement contentWindow ie iframeElement contentWindow

文章Iframes onload and document domain中說「he iframe element object has a property called contentDocument that contains the iframe s document object so you can use the parentWindow property to retrieve the window object 」意思就是一些瀏覽器可以通過iframeElement contentDocument parentWindow獲得iframe的 window對象 但經過測試firefox chrome的element contentDocument對象沒有parentWindow屬性

(javascript)

復制代碼 代碼如下: function getIframeWindow(element){ return element contentWindow; //return element contentWindow || element contentDocument parentWindow; }

獲得iframe的document對象 存在跨域訪問限制

chrome iframeElement contentDocument firefox iframeElement contentDocument ie element contentWindow document 備注 ie沒有iframeElement contentDocument屬性

(javascript)

復制代碼 代碼如下: var getIframeDocument = function(element) { return element contentDocument || element contentWindow document; };

iframe中獲得父頁面的window對象 存在跨域訪問限制

父頁面 window parent 頂層頁面 window top 適用於所有瀏覽器

獲得iframe在父頁面中的標簽 存在跨域訪問限制

window frameElement(類型 HTMLElement) 適用於所有瀏覽器

iframe的onload事件 非ie瀏覽器都提供了onload事件 例如下面代碼在ie中是不會有彈出框的

(javascript)

復制代碼 代碼如下: var ifr = document createElement( iframe ); ifr src = ; ifr onload = function() { alert( loaded ); }; document body appendChild(ifr);

但是ie卻又似乎提供了onload事件 下面兩種方法都會觸發onload

方法一

復制代碼 代碼如下: <iframe onload="alert( loaded );" src="

方法二 //只有ie才支持為createElement傳遞這樣的參數

復制代碼 代碼如下: var ifr = document createElement( <iframe onload="alert( loaded );" src=" ); document body appendChild(ifr);

由於iframe元素包含於父級頁面中 因此以上方法均不存在跨域問題

實際上IE提供了onload事件 但必須使用attachEvent進行綁定

復制代碼 代碼如下: var ifr = document createElement( iframe ); ifr src = ; if (ifr attachEvent) { ifr attachEvent( onload function(){ alert( loaded ); }); } else { ifr onload = function() { alert( loaded ); }; } document body appendChild(ifr);

frames window frames可以取到頁面中的幀(iframe frame等) 需要注意的是取到的是window對象 而不是HTMLElement

復制代碼 代碼如下: lishixin/Article/program/Java/JSP/201311/19939

熱點內容
龍村m腳本 發布:2024-11-29 17:38:10 瀏覽:781
linuxc配置文件 發布:2024-11-29 17:08:31 瀏覽:826
wow刷碎片腳本 發布:2024-11-29 15:58:24 瀏覽:592
明小子源碼 發布:2024-11-29 15:15:30 瀏覽:144
蘋果8plus什麼配置 發布:2024-11-29 14:16:36 瀏覽:677
androidmvp結構 發布:2024-11-29 14:16:34 瀏覽:536
androidsqlite命令 發布:2024-11-29 14:04:38 瀏覽:156
信用卡分期演算法 發布:2024-11-29 13:50:56 瀏覽:808
安卓手機dll文件為什麼打不開 發布:2024-11-29 13:40:49 瀏覽:1003
百分之五十石碳酸怎麼配置 發布:2024-11-29 13:38:56 瀏覽:974