1. 程式人生 > >瀏覽器同源策略的跨域

瀏覽器同源策略的跨域

同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。 所謂同源是指域名,協議,埠相同。 當一個瀏覽器的兩個tab頁中分別開啟百度和谷歌的頁面時,當瀏覽器的百度tab頁執行一個指令碼的時候會檢查這個指令碼是屬於哪個頁面的,即檢查是否同源,只有和百度同源的指令碼才會被執行。 如果非同源,那麼在請求資料時,瀏覽器會在控制檯中報一個異常,提示拒絕訪問。不同源的客戶端指令碼在沒有明確授權的情況下,不能讀寫對方資源。所以google.com下的js指令碼採用ajax讀取baidu.com裡面的檔案資料是會報錯的。

如何判斷是否是同源,可以檢視該表

不受同源策略限制的:

  • 頁面中的連結,重定向以及表單提交是不會受到同源策略限制的。
  • 跨域資源的引入是可以的。但是js不能讀寫載入的內容。如嵌入到頁面中的<script src="..."></script>,<img>,<link>,<iframe>等 

跨域:受前面所講的瀏覽器同源策略的影響,不是同源的指令碼不能操作其他源下面的物件。想要操作另一個源下的物件是就需要跨域。