同源策略:ajax請(qǐng)求時(shí)帖族,瀏覽器要求當(dāng)前網(wǎng)頁(yè)和server必須同源(安全)
同源的意思是:協(xié)議尘颓,域名的猛,端口 三者必須保持一致
前端:http://a.com:8082/
server: https://b.com/api/xxxx
(默認(rèn)的端口號(hào)就是8080
)
http
:協(xié)議 ; a.com
:域名; 8082
:端口號(hào)
加載圖片廓推,css ,js 可無(wú)視同源策略的要求
跨域:所有的跨越都必須經(jīng)過server端允許和配合米碰。未經(jīng)過server端允許就實(shí)現(xiàn)的跨域說(shuō)明瀏覽器有漏洞。
解決跨域
(1) jsonp 解決跨域的原理:當(dāng)我們?cè)L問一個(gè)url
地址的時(shí)候购城,服務(wù)器并不是只能夠返回 HTML
文件吕座,它可以返回任意的動(dòng)態(tài)拼接數(shù)據(jù),只要數(shù)據(jù)格式符合 HTML
格式要求瘪板。同樣的吴趴,<script src="https://www.qunar.com/hotel/mustTry"></script>
,也不一定 返回一個(gè)js
文件,可以是任意的符合js
格式的數(shù)據(jù)侮攀。
所以锣枝,</script>
可以繞過跨域限制,(</script>
返回的地址是跨域的地址兰英,服務(wù)器可以任意拼接數(shù)據(jù))撇叁,</script>
就可以獲得跨域的數(shù)據(jù),只要服務(wù)器愿意返回畦贸。
(2)通過 CORS
服務(wù)器設(shè)置 http header