摘要:三哪些會(huì)受到同源策略限制對(duì)于瀏覽器來說,除了會(huì)受到同源策略的限制外,瀏覽器加載的一些第三方插件也有各自的同源策略。九的現(xiàn)代瀏覽器允許腳本直連一個(gè)地址而不管同源策略。
一、Origin(源)
源由下面三個(gè)部分組成:
域名
端口
協(xié)議
兩個(gè) URL ,只有這三個(gè)都相同的情況下,才可以稱為同源。
下來就以 "http://www.example.com/page.html" 這個(gè)鏈接來比較說明:
對(duì)比URL | 結(jié)果 | 原因 |
---|---|---|
http://m.example.com/page.html | 不同源 | 域名不同 |
https://www.example.com/page.... | 不同源 | 協(xié)議不同 |
http://www.example.com:8080/page.html | 不同源 | 端口不同 |
http://www.example.com/page3.... | 同源 | 同域名,同端口,同協(xié)議 |
瀏覽器的同源策略是一種安全功能,同源策略限制了從同一個(gè)源加載的文檔或腳本如何與來自另一個(gè)源的資源進(jìn)行交互。這是一個(gè)用于隔離潛在惡意文件的重要安全機(jī)制。所以a.com下的js腳本采用ajax讀取b.com里面的文件數(shù)據(jù)是會(huì)報(bào)錯(cuò)的。
三、哪些會(huì)受到同源策略限制對(duì)于瀏覽器來說,除了DOM、Cookie、XMLHttpRequest 會(huì)受到同源策略的限制外,瀏覽器加載的一些第三方插件也有各自的同源策略。最常見的一些插件如 Flash ,有自己的控制策略。
所以,想要體驗(yàn)下,同源策略限制,你就可以寫一個(gè)ajax 請(qǐng)求,比如127.0.0.1:80 要請(qǐng)求127.0.0.1:8080 的 a.js ;
127.0.0.1:80 里的index.html
Document 另一個(gè)頁面
然后就會(huì)報(bào)錯(cuò)了,出現(xiàn)了同源策略限制了。
四、什么是跨域呢說的跨域,其實(shí)呢就是跨源。而跨域是一個(gè)統(tǒng)稱,通過上面的我們知道了,因?yàn)橥床呗?,不同源之間,不能進(jìn)行交互。那么跨域就是解決不同源之間發(fā)起請(qǐng)求、請(qǐng)求數(shù)據(jù)、發(fā)送數(shù)據(jù)、通信等交互問題解決方法的統(tǒng)稱。
在瀏覽器中,