同源策略(Same origin policy)使得來自於不一樣來源的腳本,沒法讀取或修改當前源對象。它是瀏覽器最核心也是最基本的安全功能。css
若是域名或 IP 地址、端口與協議都相同,那麼就會被斷定爲同源。html
假設有這麼一個 URL:http://www.deniro.net
,下表中的 URL 與此比較,判斷是否同源:vue
URL | 是否同源 | 緣由 |
---|---|---|
http://www.deniro.net/welcome.html |
同源 | - |
https://www.deniro.net/welcome.html |
不一樣源 | 協議不一樣 |
http://www.deniro.net:8080/welcome.html |
不一樣源 | 端口號不一樣 |
http://book.deniro.net/welcome.html |
不一樣源 | 域名不一樣 |
<script>
、<img>
、<iframe>
、<link>
標籤不受同源策略限制,能夠跨域加載資源。 好比咱們能夠在咱們的項目中加載 CDN 上的 Vue.js: <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
跨域
CDN 的全稱是 Content Delivery Network ,即 內容分發網絡 。CDN 是構建在網絡之上的內容分發網絡,依靠部署在各地的邊緣服務器,經過中心平臺的負載均衡 、 內容分發 、 調度等功能模塊,使用戶就近獲取所需內容,下降網絡擁塞,提升用戶訪問響應速度和命中率 。瀏覽器
這些標籤加載資源時,瀏覽器會發起 Get 請求,獲取這些資源。但在加載 JavaScript 時,限制了讀寫返回內容的權限。安全
XMLHttpRequest 對象能夠與服務器交換數據。具體功能以下:服務器
爲了安全起見,XMLHttpRequest 對象,在默認狀況下,不能跨域訪問資源,因此在 Ajax 開發中必定要注意哦O(∩_∩)O~網絡
瀏覽器會經過目標域所返回的 HTTP 頭(Access-Control-Allow-Origin)來斷定是否容許跨域訪問,由於 JavaScript 沒法操縱 HTTP 頭。負載均衡