由于 Javascript 同源策略的存在使得一個(gè)源中加載來自其它源中資源的行為受到了限制。即會(huì)出現(xiàn)跨域請(qǐng)求禁止。

通俗一點(diǎn)說就是如果存在協(xié)議、域名、端口或者子域名不同服務(wù)端,或一者為IP地址,一者為域名地址(在跨域問題上,域僅僅是通過“ url的首部 ”來識(shí)別而不會(huì)去嘗試判斷相同的IP地址對(duì)應(yīng)著兩個(gè)域或者兩個(gè)域是否同屬同一個(gè)IP),之中任意服務(wù)端旗下的客戶端發(fā)起請(qǐng)求其它服務(wù)端資源的訪問行動(dòng)都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請(qǐng)求資源。

但很多時(shí)候我們卻又不得不去跨域請(qǐng)求資源,這個(gè)時(shí)候就需要我們想方法去繞過瀏覽器同源策略的限制了。

常見的跨域請(qǐng)求解決方法:

  1.Jsonp 利用script標(biāo)簽發(fā)起get請(qǐng)求不會(huì)出現(xiàn)跨域禁止的特點(diǎn)實(shí)現(xiàn)

  2.window.name+iframe 借助中介屬性window.name實(shí)現(xiàn)

  3.html5的 postMessage 主要側(cè)重于前端通訊,不同域下頁面之間的數(shù)據(jù)傳遞

  4.Cors需要服務(wù)器設(shè)置header:Access-Control-Allow-Origin

  5.Nginx反向代理 可以不需要目標(biāo)服務(wù)器配合,不過需要Nginx中轉(zhuǎn)服務(wù)器,用于轉(zhuǎn)發(fā)請(qǐng)求(服務(wù)端之間的資源請(qǐng)求不會(huì)有跨域限制)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式