什么是跨域?據(jù)了解,跨域指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對(duì)javascript施加的安全限制。
例如:a頁(yè)面想獲取b頁(yè)面資源,如果a、b頁(yè)面的協(xié)議、域名、端口、子域名不同,所進(jìn)行的訪問行動(dòng)都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請(qǐng)求資源。
2.為什么要跨域?
為了安全起見,瀏覽器設(shè)置了同源策略,當(dāng)頁(yè)面執(zhí)行腳本的時(shí)候,瀏覽器會(huì)檢查訪問的資源是否同源,如果不是,就會(huì)報(bào)錯(cuò)。
3.如何解決跨域?
(1)JSONP
利用的是 script 標(biāo)簽 src 屬性請(qǐng)求 js 無(wú)跨域問題,但具有局限性,只能發(fā)送 get 請(qǐng)求
(2)CORS
當(dāng)請(qǐng)求違反了同源策略,就在請(qǐng)求頭添加 Access-Control-Allow-Origin 屬性,瀏覽器會(huì)判斷響應(yīng)中 Access-Control-Allow-Origin 值是否和當(dāng)前的地址相同,匹配成功后才會(huì)做響應(yīng)處理,否則繼續(xù)報(bào)錯(cuò)。缺點(diǎn)是會(huì)忽略cookie,而且對(duì)瀏覽器版本有一定的要求。
以上就是有關(guān)跨域的一些介紹。