跨域是什么意思
跨域是跨域指一個(gè)網(wǎng)頁(yè)的腳本試圖去請求另一個(gè)域名下的資源,由于瀏覽器的什意思同源策略,這種請求會(huì )被阻止,跨域跨域問(wèn)題主要涉及到瀏覽器的什意思同源策略和服務(wù)??器端的CORS設置。
(┐(′д`)┌圖片來(lái)源網(wǎng)絡(luò ),跨域侵刪)
什么是??什意思同源策略?
同源策略是一種約定,它是跨域瀏覽器的一種安全功能,不能請求第三方網(wǎng)頁(yè),什意思當協(xié)議、跨域子域名、什意思主域名、跨域端口號中任何一個(gè)不相同時(shí),什意思都會(huì )產(chǎn)生??跨域問(wèn)題??缬?/p>
什么是什意思CORS?
CORS(CrossOrigin Resource Sharing??)即跨域資源共享,是跨域一種 W3C 標準,它允許瀏覽器向跨源服務(wù)器發(fā)送XMLHttpRequ??est請求,從而克服了 AJAX 只能同源使用的限制。
跨域的原因是什么?
1、瀏覽器的同源策略:這是最主要的原因,因為瀏覽器為了保護用戶(hù)的安全,不允許從一個(gè)源加載(zai)的文檔或腳本與來(lái)自另一個(gè)源的資源進(jìn)行交互。
2、后端沒(méi)有設置允許跨域訪(fǎng)問(wèn):即使前端設置了允許跨域,如果后端沒(méi)有設置允許跨域訪(fǎng)問(wèn),那么仍然會(huì )失敗。
如何解決跨域問(wèn)題?
1、JSONP:JSONP 的原(?_?;)理是利用 script 標簽沒(méi)有跨域限制的特性,通過(guò)在遠程服務(wù)器上注冊一個(gè)函數,然后在本地調用這個(gè)函數并傳遞參數,從而實(shí)現跨域通信(′▽?zhuān)?),JSONP 只支持?? GEヽ(′ー`)ノT 請求。
2、CORS:CORS 是一種更為先進(jìn)的跨域解決方案,它需要服務(wù)器端設置響應頭信息,允許特定的來(lái)源進(jìn)行訪(fǎng)問(wèn),CORS 支持各種類(lèi)型的 HTTP 請求。
3、服務(wù)器代理:┐(′ー`)┌通過(guò)服務(wù)器端代理實(shí)現跨域請求,將請求發(fā)送到目標服務(wù)器,然后將目標服務(wù)器的響應( ?ω?)返回給客戶(hù)端,這種方法可以解決大(′▽?zhuān)?)部分跨域問(wèn)題,但會(huì )增加服務(wù)器(qi)的負載。