Vite代理如何解決跨域問題詳解
前言
我們在編寫前端項(xiàng)目的時候,經(jīng)常會遇到跨域的問題,當(dāng)我們訪問后端 API 的 URL 路徑時,只要域名、端口或訪問協(xié)議(如 HTTP 和 HTTPS)有一項(xiàng)不同,就會被瀏覽器認(rèn)定為跨域。另外我們也會經(jīng)常重復(fù)編寫后端的域名,例如 https://example.com/api/some_end_point,https://example.com/api/other_end_point,針對這兩種情況,可以直接用同一個配置來解決,即代理配置。
不管是 Vite 還是 Webpack,這些打包工具都支持設(shè)置前端代理,它們能夠把對某一段 URL 的訪問直接轉(zhuǎn)換成另一個真實(shí)的后端 API 地址,這樣前后端就視為使用了相同的域名、協(xié)議和端口,就避免了跨域的問題,還能避免繁瑣的反復(fù)編寫域名。
1.Vite Proxy
我們這里以 Vite 的配置為例,來看一下如何給 API 請求設(shè)置代理。在 Vite 編寫的項(xiàng)目里邊,有一個 vite.config.js配置文件,里邊是關(guān)于 Vite 的配置項(xiàng),可以在里邊配置代理。假如我們前端項(xiàng)目路徑為 http://localhost:3000,需要代理所有以 /api 開頭的 API 請求,把它轉(zhuǎn)發(fā)到 http://localhost:3001,并且后端的 API 路徑中不帶 /api前綴,需要自動去掉 /api前綴,如下圖所示:

下面是端口從5173代理到8080
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
server: {
proxy: {
'/api': {
target: 'http://127.0.0.1:8080', //目標(biāo)url
changeOrigin: true, //支持跨域
rewrite: (path) => path.replace(/^\/api/, ""),
//重寫路徑,替換/api
}
}
}
})注意我先配置了axios的baseurl
// 請求
const service = axios.create({
baseURL: '/api',
timeout: 10000
})
也就是說 我請求request.get("/all") ,會解析成http://127.0.0.1:5173/api/all。
這里我請求http://127.0.0.1:5173/api/all 這是前端的請求。
http://127.0.0.1:8080/all 這里對應(yīng)后端的接口。
前端


后端

2.參考文章
總結(jié)
到此這篇關(guān)于Vite代理如何解決跨域問題的文章就介紹到這了,更多相關(guān)Vite代理解決跨域問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue解決this.$refs.xx在mounted中獲取DOM元素為undefined問題
這篇文章主要介紹了vue解決this.$refs.xx在mounted中獲取DOM元素為undefined問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
基于canvas實(shí)現(xiàn)手寫簽名(vue)
這篇文章主要為大家詳細(xì)介紹了基于canvas實(shí)現(xiàn)簡易的手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05
vue3中keep-alive和vue-router的結(jié)合使用方式
這篇文章主要介紹了vue3中keep-alive和vue-router的結(jié)合使用方式,?具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
前端vue項(xiàng)目如何使用Decimal.js做加減乘除求余運(yùn)算
decimal.js是使用的二進(jìn)制來計(jì)算的,可以更好地實(shí)現(xiàn)格化式數(shù)學(xué)運(yùn)算,對數(shù)字進(jìn)行高精度處理,使用decimal類型處理數(shù)據(jù)可以保證數(shù)據(jù)計(jì)算更為精確,這篇文章主要給大家介紹了關(guān)于前端vue項(xiàng)目如何使用Decimal.js做加減乘除求余運(yùn)算的相關(guān)資料,需要的朋友可以參考下2024-05-05

