Vuecli3配置代理及遇到的問(wèn)題解決
配置方法
內(nèi)容說(shuō)明:
此處前端應(yīng)用的端口為8088,后端應(yīng)用的端口為8052,域都為localhost
后端接口為http://localhost:8052/Menu/xxxx。
配置修改
vue.config.js文件中的proxy部分
devServer: {
open: true, //配置自動(dòng)啟動(dòng)瀏覽器
// host: '0.0.0.0',
port: 8088,
https: false,
hot: false,
hotOnly: false,
// 設(shè)置代理
proxy: {
'^/Menu/': {
target: 'http://localhost:8052', // 代理到的后端接口地址
ws: true, //如果要代理 websockets,配置這個(gè)參數(shù)
secure: false, // 如果是https接口,需要配置這個(gè)參數(shù)
changeOrigin: true, //是否跨域
// pathRewrite: {
// '/Menu': '/'
// }
}
},
before: app => {}
},可能遇到的問(wèn)題
瀏覽器依然報(bào)錯(cuò)跨域問(wèn)題,代理未能生效
請(qǐng)求地址的配置文件在.env.development中,原來(lái)配置如下:
NODE_ENV = 'development' VUE_APP_CURRENTMODE='dev' //local // 這是后端接口 VUE_APP_API_HOST=http://localhost:8052/Menu
其中VUE_APP_API_HOST為axios請(qǐng)求時(shí),對(duì)應(yīng)的baseURL地址
// axios.js
// create an axios instance
const service = axios.create({
baseURL: process.env.VUE_APP_API_HOST, // api 的 base_url
timeout: 5000 // request timeout
})此時(shí)啟動(dòng)VUE項(xiàng)目,依然報(bào)錯(cuò)跨域問(wèn)題。因?yàn)榇藭r(shí)請(qǐng)求的地址依然是http://localhost:8052開頭,并未牽涉到配置的代理,需要將請(qǐng)求的地址修改為http://localhost:8088,即
NODE_ENV = 'development' VUE_APP_CURRENTMODE='dev' //local // 這是后端接口 VUE_APP_API_HOST=http://localhost:8088/Menu
此時(shí),代理會(huì)生效,但有可能會(huì)報(bào)錯(cuò)404
pathRewrite可能會(huì)牽涉的路徑問(wèn)題
這里針對(duì)的只是后端接口,瀏覽器中前端的請(qǐng)求與此無(wú)關(guān),相關(guān)的接口都可以用postman訪問(wèn)測(cè)試。
即,可以用postman測(cè)試http://localhost:8088/Menu/xxxx等一系列接口,因?yàn)関ue已經(jīng)設(shè)置了其代理。
(注:此處前端接口指:vue項(xiàng)目運(yùn)行起來(lái)時(shí),瀏覽器控制臺(tái)中XHR能看到的接口;
后端接口指經(jīng)過(guò)代理后的(后端)接口,它本身還是后端接口,只是經(jīng)過(guò)了代理,可以用前端的ip和端口通過(guò)postman來(lái)調(diào)用。在某些情況下,前端接口和后端接口會(huì)存在路徑上的偏差造成請(qǐng)求404)
一般來(lái)說(shuō),pathRewrite的配置如下,作用是修改請(qǐng)求接口的地址(后端接口)
pathRewrite: {
'/Menu': '/'
}
// '^/api': '/api' // 這種接口配置出來(lái) http://localhost:8088/api/login
// '^/api': '/' 這種接口配置出來(lái) http://localhost:8088/login然而這僅僅是理論上的配置,在實(shí)際使用中,我遇到了如下問(wèn)題:
如果在配置中保留'/Menu': '/',能夠代理成功url會(huì)變成http://localhost:8088/Menu/Menu/xxx
如果去除,能夠代理成功的url為http://localhost:8088/Menu/xxxx
甚至在寫成'/Menu': '/Menu'時(shí),能夠成功代理的url也為http://localhost:8088/Menu/xxx
與理論上的配置相反
不確定是由于版本或者是其他什么問(wèn)題導(dǎo)致的這一奇怪的現(xiàn)象,如果有人遇到此類的問(wèn)題,可以考慮修改此處的配置。由于我只需要解決瀏覽器的跨域問(wèn)題,只要保證前端調(diào)用的接口和后端能夠成功代理的接口一致即可。
以上就是Vuecli3配置代理及遇到的問(wèn)題解決的詳細(xì)內(nèi)容,更多關(guān)于Vuecli3配置代理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue項(xiàng)目動(dòng)態(tài)路由刷新界面白屏undefined問(wèn)題及解決
這篇文章主要介紹了vue項(xiàng)目動(dòng)態(tài)路由刷新界面白屏undefined問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-07-07
vue實(shí)現(xiàn)商品詳情頁(yè)功能之商品選項(xiàng)卡
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)商品詳情頁(yè)功能之商品選項(xiàng)卡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
基于Vue實(shí)現(xiàn)簡(jiǎn)單的貪食蛇游戲
貪食蛇是一個(gè)非常經(jīng)典的游戲,?在游戲中,?玩家操控一條細(xì)長(zhǎng)的直線,?它會(huì)不停前進(jìn),?玩家只能操控蛇的頭部朝向,?一路拾起觸碰到之物。本文將用Vue實(shí)現(xiàn)這一游戲,感興趣的可以嘗試一下2022-04-04
Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播效果
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
vue項(xiàng)目打包后提交到git上為什么沒有dist這個(gè)文件的解決方法
這篇文章主要介紹了vue項(xiàng)目打包后提交到git上為什么沒有dist這個(gè)文件的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
解決vue v-for src 圖片路徑問(wèn)題 404
今天小編就為大家分享一篇解決vue v-for src 圖片路徑問(wèn)題 404,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
關(guān)于vue項(xiàng)目一直出現(xiàn) sockjs-node/info?t=XX的解決辦法
sockjs-node 是一個(gè)JavaScript庫(kù),提供跨瀏覽器JavaScript的API,創(chuàng)建了一個(gè)低延遲、全雙工的瀏覽器和web服務(wù)器之間通信通道,這篇文章主要介紹了vue項(xiàng)目一直出現(xiàn) sockjs-node/info?t=XX的解決辦法,需要的朋友可以參考下2023-12-12

