爲保護用戶信息安全,防止惡意網站竊取用戶數據,瀏覽器限制本域中的腳本只能訪問本域中的資源,這就是同源策略。javascript
若是兩個 URL 的 protocol
、host
、port
三者都相同的話,則這兩個 URL 是同源,即屬於同一個域。java
在頁面中經過 about:blank
或 javascript: URL
執行的腳本會繼承打開該 URL 的文檔的源,由於這些類型的 URL 沒有包含源服務器的相關信息。跨域
能夠經過設置 document.domain
爲當前域或者當前域的父域來修改當前頁面的源。 因爲設置 document.domain
會致使 port
被重置爲 null
,因此使用這種方式修改源時,須要在父域和子域中設置 document.domain
爲相同的值,不然會因爲 port
不相同而沒法經過同源檢測。瀏覽器
請求與當前域非同源的域中的資源即爲跨域。安全