Vuecli3配置代理及遇到的問題解決
配置方法
內(nèi)容說明:
此處前端應用的端口為8088,后端應用的端口為8052,域都為localhost
后端接口為http://localhost:8052/Menu/xxxx
。
配置修改
vue.config.js
文件中的proxy
部分
devServer: { open: true, //配置自動啟動瀏覽器 // host: '0.0.0.0', port: 8088, https: false, hot: false, hotOnly: false, // 設(shè)置代理 proxy: { '^/Menu/': { target: 'http://localhost:8052', // 代理到的后端接口地址 ws: true, //如果要代理 websockets,配置這個參數(shù) secure: false, // 如果是https接口,需要配置這個參數(shù) changeOrigin: true, //是否跨域 // pathRewrite: { // '/Menu': '/' // } } }, before: app => {} },
可能遇到的問題
瀏覽器依然報錯跨域問題,代理未能生效
請求地址的配置文件在.env.development
中,原來配置如下:
NODE_ENV = 'development' VUE_APP_CURRENTMODE='dev' //local // 這是后端接口 VUE_APP_API_HOST=http://localhost:8052/Menu
其中VUE_APP_API_HOST
為axios請求時,對應的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 })
此時啟動VUE項目,依然報錯跨域問題。因為此時請求的地址依然是http://localhost:8052
開頭,并未牽涉到配置的代理,需要將請求的地址修改為http://localhost:8088
,即
NODE_ENV = 'development' VUE_APP_CURRENTMODE='dev' //local // 這是后端接口 VUE_APP_API_HOST=http://localhost:8088/Menu
此時,代理會生效,但有可能會報錯404
pathRewrite可能會牽涉的路徑問題
這里針對的只是后端接口,瀏覽器中前端的請求與此無關(guān),相關(guān)的接口都可以用postman訪問測試。
即,可以用postman測試http://localhost:8088/Menu/xxxx
等一系列接口,因為vue已經(jīng)設(shè)置了其代理。
(注:此處前端接口指:vue項目運行起來時,瀏覽器控制臺中XHR能看到的接口;
后端接口指經(jīng)過代理后的(后端)接口,它本身還是后端接口,只是經(jīng)過了代理,可以用前端的ip和端口通過postman來調(diào)用。在某些情況下,前端接口和后端接口會存在路徑上的偏差造成請求404)
一般來說,pathRewrite的配置如下,作用是修改請求接口的地址(后端接口)
pathRewrite: { '/Menu': '/' } // '^/api': '/api' // 這種接口配置出來 http://localhost:8088/api/login // '^/api': '/' 這種接口配置出來 http://localhost:8088/login
然而這僅僅是理論上的配置,在實際使用中,我遇到了如下問題:
如果在配置中保留'/Menu': '/'
,能夠代理成功url會變成http://localhost:8088/Menu/Menu/xxx
如果去除,能夠代理成功的url為http://localhost:8088/Menu/xxxx
甚至在寫成'/Menu': '/Menu'
時,能夠成功代理的url也為http://localhost:8088/Menu/xxx
與理論上的配置相反
不確定是由于版本或者是其他什么問題導致的這一奇怪的現(xiàn)象,如果有人遇到此類的問題,可以考慮修改此處的配置。由于我只需要解決瀏覽器的跨域問題,只要保證前端調(diào)用的接口和后端能夠成功代理的接口一致即可。
以上就是Vuecli3配置代理及遇到的問題解決的詳細內(nèi)容,更多關(guān)于Vuecli3配置代理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Element?Table行的動態(tài)合并及數(shù)據(jù)編輯示例
這篇文章主要為大家介紹了Element?Table行的動態(tài)合并及數(shù)據(jù)編輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07