通过script标签实现跨域
跨域
什么是跨域?
跨域問(wèn)題是由于javascript語(yǔ)言安全限制中的同源策略造成的。同源策略是由Netscape提出的一個(gè)著名的安全策略。 現(xiàn)在所有支持JavaScript 的瀏覽器都會(huì)使用這個(gè)策略。同源策略阻止從一個(gè)域上加載的腳本去獲取或操作另一個(gè)域上的文檔屬性。也就是說(shuō),受到請(qǐng)求的 URL 的域必須與當(dāng)前 Web 頁(yè)面的域相同。這說(shuō)明瀏覽器隔離來(lái)自不同源的內(nèi)容,以防止它們之間的操作。所謂同源是指域名,協(xié)議,端口均相同。
同源的幾種情況:
?
為什么要跨越?
我們實(shí)際上做項(xiàng)目的時(shí)候,不可避免地會(huì)根據(jù)項(xiàng)目需求進(jìn)行跨站訪問(wèn),子域和主域之間數(shù)據(jù)共享等,受到同源策略的影響,要滿足這些需求,就要用跨域技術(shù)來(lái)實(shí)現(xiàn)。
跨域技術(shù)
- 設(shè)置頭文件:例如:
-
res.setHeader("Access-Control-Allow-Origin","*");
?res.setHeader("Access-Control-Allow-Methods","GET,POST"); - 服務(wù)器代理:在服務(wù)器端設(shè)置代理文件,用來(lái)進(jìn)行跨域請(qǐng)求,客戶端直接發(fā)送本域內(nèi)的Ajax請(qǐng)求,從而達(dá)到跨域請(qǐng)求的目的。特點(diǎn):在客戶端不存在跨域請(qǐng)求。需要增加代理文件,為了安全需要和對(duì)方約定。
- jsonp:jsonp是一個(gè)簡(jiǎn)單高效的跨域方式,它允許在服務(wù)器端集成Script tags返回至客戶端,通過(guò)javascript callback的形式實(shí)現(xiàn)跨域訪問(wèn)。特點(diǎn):不受同源策略的限制,兼容性更好,易于實(shí)現(xiàn),只支持get。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yddlvo/p/4697124.html
總結(jié)
以上是生活随笔為你收集整理的通过script标签实现跨域的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: angularJS--多个控制器之间的数
- 下一篇: 利用JS弹出层实现简单的动态提示“正在加