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