UniApp 中 Web/H5 正确使用反向代理解决跨域问题
至天 2024-09-20 10:33:01 阅读 57
因为 Vue3 的构建工具是 Vite,所以配置 <code>vue.config.js 是没用的(Vue2 因为使用 webpack 所以才用这个文件)
这里提供一份 vue.config.js
的示例:
module.exports = { -- -->
devServer: {
proxy: {
'/api': {
target: 'http://example.com',
changeOrigin: true,
pathRewrite: {
'^/api': '/',
},
}
}
}
}
同时 manifest.json
里配置的反代配置似乎有 Bug,反代能生效,但 path
重写是失效的,即:
{
"h5": {
"devServer": {
"https": false,
"disableHostCheck": true,
"proxy": {
"/api": {
"target": "http://example.com",
"pathRewrite": {
"^/api": ""
}
}
}
}
}
}
因为使用了 Vite,所以我们应该创建 vite.config.js
文件进行设置:
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
export default defineConfig({
plugins: [
uni()
],
server: {
host: '127.0.0.1',
port: 5173,
proxy: {
'/api': {
target: 'http://example.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''), // 此处进行路径重写
}
}
}
});
至此重新运行服务即可看到生效并成功的反向代理,更多关于 Vite 反代配置看这里:https://cn.vitejs.dev/config/server-options#server-proxy
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。