使用vite,为了防止请求接口的时候出现跨域问题,所以使用了vite的proxy进行配置。
比如请求接口的地址是 https://172.1.1.0:8080, 那么vite的配置信息如下:
...
server: {
host: '0.0.0.0',
port: 12000,
proxy: {
'/local/': {
target: 'https://172.1.1.0:8080',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/local\//, ''),
},
},
},
...
本地请求是所有的接口前边只需要加一个前缀即可 —— /local/。比如登录接口就是 ‘/local/login’。
于是去请求发现直接报错了,报错信息如下:
[vite] http proxy error: Error: self signed certificate
大概意思是证书不对。
虽然使用了https,但是没想到这么安全,接口代理都发不出去了。。。
百度一下,根本没有合适的答案,google用不了,直接上bing。
果然再github中找到了这个issue。地址:Proxy does not work, both requests to backend and http://localhost:3000/ · Issue #3475 · vitejs/vite · GitHubhttps://github.com/vitejs/vite/issues/3475
百度你努力啊,搜索的都是啥。
里边提到了一个解决方案就是增加一个配置 —— secure: false. 整体配置代码如下:
proxy: {
'/local/': {
target: '',
// 这里新增一个配置
secure: false,
// 新增结束
changeOrigin: true,
rewrite: (path) => path.replace(/^\/local\//, ''),
},
},
然后重新试一下,果然没问题。