瀏覽器加載資源跨域及原因

什麼是跨域?

只要協議、域名、端口有任何一個不同,都被當作是不同的域,之間的請求就是跨域操作。

http://www.123.com/index.html 調用 http://www.123.com/server.php (非跨域)

http://www.123.com/index.html 調用 http://www.456.com/server.php (主域名不同:123/456,跨域)

http://abc.123.com/index.html 調用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

http://www.123.com:8080/index.html 調用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

http://www.123.com/index.html 調用 https://www.123.com/server.php (協議不同:http/https,跨域)

http://thsapp.com/index.html 調用http://119.253.32.11 /data.json   (域名和域名對應的ip ,跨域)

請注意:localhost和127.0.0.1雖然都指向本機,但也屬於跨域。

瀏覽器執行javascript腳本時,會檢查這個腳本屬於哪個頁面,如果不是同源頁面,就不會被執行。

瀏覽器的同源策略會導致跨域,這裏同源策略又分爲以下兩種:

  1. DOM同源策略:禁止對不同源頁面DOM進行操作。這裏主要場景是iframe跨域的情況,不同域名的iframe是限制互相訪問的。
  2. XmlHttpRequest同源策略:禁止使用XHR對象向不同源的服務器地址發起HTTP請求。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章