vue項目的跨域設(shè)置

在前端開發(fā)中,“跨域”是繞不過去的,了解跨域之前,先要知道瀏覽器的同源策略

同源策略:請求的url地址,必須與瀏覽器上的url地址處于同域上,也就是域名,端口,協(xié)議相同。

當(dāng)你的請求地址和瀏覽器上的url地址不一樣的時候,由于同源策略,將請求不到資源,將無法“跨域”獲取資源。

我的理解是:跨域這個問題只存在于頁面的異步請求之中,比如ajax,vue中的axios等,因為同步請求,直接就在瀏覽器的地址欄將目標(biāo)地址打開了,不存在請求地址與瀏覽器地址不一致的情況。

但也有特殊情況,比如img標(biāo)簽和script標(biāo)簽的src屬性,是可以獲取到外部資源,天生可以跨域。

解決跨域有很多種辦法,最近的項目中使用的辦法我認(rèn)為是最好的一種,即:配置webpack中的proxyTable。

話不多說,請看代碼:

proxyTable: {
    '/list': {
          target:'http://api.xxxxxxxx.com',
          pathRewrite: {'^/list':'/list' }   
     }
}

此時,從前端向后臺請求“/list”這個地址的時候,在瀏覽器看到的url前綴是你本地運行服務(wù)"localhost:XXXX",但實際上,你請求的地址是'http://api.xxxxxxxx.com'

為什么這樣做可以成功跨域呢?其實,是因為你本地的node服務(wù)將你的請求做了一個代理,然后,請記住這句話,你就豁然開朗了:

同源策略是瀏覽器需要遵循的標(biāo)準(zhǔn),而如果是服務(wù)器向服務(wù)器請求就無需遵循同源策略。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容