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