摘要:摘自阮一峰博客延伸閱讀不涉及跨域跨源資源分享為標準兼容性參考優點提供安全的跨域數據傳輸,且不限于請求??缬蛸Y源共享阿里云技術文檔跨域資源共享詳解阮一峰
參考:
維基百科 - Root domain
https://en.wikipedia.org/wiki...
瀏覽器同源政策及其規避方法 - 阮一峰
http://www.ruanyifeng.com/blo...
window.name 跨域實現原理及實例
http://blog.csdn.net/qq_34099...
html5 postMessage 官方API
https://developer.mozilla.org...
JSONP(直接跳到JSONP那段)
http://kb.cnblogs.com/page/13...
跨域資源共享 CORS 詳解 - 阮一峰
http://www.ruanyifeng.com/blo...
跨域資源共享(CORS) - 阿里云技術文檔
https://www.alibabacloud.com/...
域 domian : . 根域、.org 頂級域(一級域)、.baidu.com 二級域1.2 同源策略&跨域
域名 domain name : baidu.com 頂級域名(一級域名)、www.baidu.com 二級域名
同源條件:協議相同、域名相同、端口相同,不滿足即為跨域1.3 限制范圍
同源目的:瀏覽器同源策略,保證用戶信息的安全,防止惡意的網站竊取數據
很多文章中介紹,跨域會對以下3種行為進行限制:
1)cookie、localStorage、indexedDB
2)dom
3)ajax 請求
我理解按如下分類更為合理:
1)cookie
2)iframe/window.open ( localStorage、indexedDB、dom )
3)ajax 請求
cookie 身份授權多帶帶一類
localStorage、indexedDB、dom 跨域受限,一般發生在 iframe 或 window.open 的跨域需求時,無法獲取新頁面的 window 對象,自然無法訪問 window.localStorage、window.indexedDB、document.getElementById
ajax 請求多帶帶一類。
2 實現跨域 2.1 document.domain瀏覽器允許通過設置 document.domain 來實現跨子域2.2 URL #hash + hashChange事件監聽
如有 a.example.com 和 b.example.com 2個二級域名,設置 document.domain=example.com 或 Set-Cookie:key=value;domain=example.com;path=/ 可實現2個二級域之間的跨域
可解決 cookie、iframe、window.open、ajax 的跨域問題
可解決 iframe 的跨域問題2.3 window.name
不推薦,如 angular.ui.router 前端路由組件會使用到 URL #hash 字段。
可解決 iframe 的跨域問題2.4 html5 postMessage + message事件監聽
window.name 的變化如何監聽是一個問題,大約可以存儲2M的內容
可解決 iframe & window.open 的跨域問題2.5 ajax - JSONP
語法:otherWindow.postMessage(message, targetOrigin, [transfer]);
官方API參考
參考:http://kb.cnblogs.com/page/13...
實現原理:web頁面上調用js文件時不受同源策略影響,擁有src屬性的標簽都擁有跨域的能力,比如
服務端實現
客戶端將 http 跨域查詢參數 flightNumber 與回調函數 flightHandler 傳遞給服務器,服務器處理完后動態生成 test.js 返回,瀏覽器加載 test.js 完成后執行 flightHandler,完成跨域請求。2.6 ajax - websocket
在實際編碼時,客戶端可使用如 jQuery 封裝好的 JSONP API。WebSocket是一種通信協議,使用ws://(非加密)和wss://(加密)作為協議前綴。該協議不實行同源政策,只要服務器支持,就可以通過它進行跨源通信。摘自阮一峰博客2.7 ajax - CORS
WebSocket 延伸閱讀(不涉及跨域)CORS 跨源資源分享(Cross-Origin Resource Sharing)為 W3C 標準(兼容性參考)
優點:提供安全的跨域數據傳輸,且不限于 GET 請求。整個CORS通信過程,都是瀏覽器自動完成,不需要用戶參與。對于開發者來說,CORS通信與同源的AJAX通信沒有差別,代碼完全一樣。瀏覽器一旦發現AJAX請求跨源,就會自動添加一些附加的頭信息,有時還會多出一次附加的請求。因此,實現CORS通信的關鍵是服務器。只要服務器實現了CORS接口,就可以跨源通信。
跨域資源共享(CORS) - 阿里云技術文檔
跨域資源共享CORS詳解 - 阮一峰
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91434.html
摘要:跨域請求詳解從繁至簡前端掘金什么是為什么要用是的一種使用模式,可用于解決主流瀏覽器的跨域數據訪問的問題。異步編程入門道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 jsonp 跨域請求詳解——從繁至簡 - 前端 - 掘金什么是jsonp?為什么要用jsonp?JSONP(JSON with Padding)是JSON的一種使用模式,可用于解決主流瀏覽器的跨域數據訪問的問題...
摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...
摘要:前言見解有限,如有描述不當之處,請幫忙指出,如有錯誤,會及時修正。為什么要梳理這篇文章最近恰好被問到這方面的問題,嘗試整理后發現,這道題的覆蓋面可以非常廣,很適合作為一道承載知識體系的題目。 前言 見解有限,如有描述不當之處,請幫忙指出,如有錯誤,會及時修正。 為什么要梳理這篇文章? 最近恰好被問到這方面的問題,嘗試整理后發現,這道題的覆蓋面可以非常廣,很適合作為一道承載知識體系的題目...
摘要:責編現代化的方式開發一個圖片上傳工具前端掘金對于圖片上傳,大家一定不陌生。之深入事件機制前端掘金事件綁定的方式原生的事件綁定方式有幾種想必有很多朋友說種目前,在本人目前的研究中,只有兩種半兩種半還有半種的且聽我道來。 Ajax 與數據傳輸 - 前端 - 掘金背景 在沒有ajax之前,前端與后臺傳數據都是靠表單傳輸,使用表單的方法傳輸數據有一個比較大的問題就是每次提交數據都會刷新頁面,用...
閱讀 1450·2023-04-25 19:51
閱讀 1937·2019-08-30 15:55
閱讀 1752·2019-08-30 15:44
閱讀 2707·2019-08-30 13:58
閱讀 2703·2019-08-29 16:37
閱讀 1084·2019-08-29 15:34
閱讀 4018·2019-08-29 11:05
閱讀 2633·2019-08-28 17:51