跨域問題其實就是瀏覽器的同源策略造成的。
同源策略限制了從同一個源加載的文檔或腳本如何與另一個源的資源進行交互。這是瀏覽器的一個用于隔離潛在惡意文件的重要的安全機制。同源指的是:協議、端口號、域名必須一致。
下表給出了與 URL store.company.com/dir/page.ht… 的源進行對比的示例:
同源策略:protocol(協議)、domain(域名)、port(端口)三者必須一致。
同源政策主要限制了三個方面:
當前域下的 js 腳本不能夠訪問其他域下的 cookie、localStorage 和 indexDB。
當前域下的 js 腳本不能夠操作訪問操作其他域下的 DOM。
當前域下 ajax 無法發送跨域請求。
同源政策的目的主要是為了保證用戶的信息安全,它只是對 js 腳本的一種限制,并不是對瀏覽器的限制,對于一般的 img、或者script 腳本請求都不會有跨域的限制,這是因為這些操作都不會通過響應結果來進行可能出現安全問題的操作。