配置vite的proxy过程以及解决post请求403问题
作者:莫鸣明
文章介绍了Vite项目中本地开发环境通过配置proxy代理实现跨域请求的方法,并解释了生产环境中该配置不生效的情况,通常使用nginx转发或后端配置CORS来解决,文章还指出,最终的请求地址是target加上rewrite重写的地址
1.前言
vite项目,本地开发环境可以通过配置proxy代理实现跨域请求。
但是生产环境,该配置不生效,一般使用 nginx 转发,或者后端配置cors
2.解释
server: {
port: 9000,
proxy: { // 本地开发环境通过代理实现跨域,生产环境使用 nginx 转发
// 正则表达式写法
'^/api': {
target: 'http://xxxx/xx', // 后端服务实际地址
changeOrigin: true, //开启代理
configure: (proxy, options) => {
// 解决请求403问题:invalid CORS request。非常重要的代码!!
proxy.on('proxyReq', function (proxyReq, req, res) {
proxyReq.removeHeader('referer') // 移除请求头
proxyReq.removeHeader('origin') // 移除请求头
})
},
// path是请求方法axios配置的baseUr中去除 协议+域名+端口 剩下的部分。例如http://127.0.0.1:9000/api,这里的path就是/api
rewrite: (path) => path.replace(/^\/api/, '') // 路径重写
}
}
}
注意:最终的请求地址是 target + (rewrite重写的地址)
3.图解


总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
