前端用代理解决CORS问题,为什么本地开发能行上线就挂了?
我在本地开发时用 Vite 的 proxy 配置成功绕过了 CORS,请求第三方 API 没问题。但部署到线上后,直接报跨域错误,明明线上也配了 Nginx 反向代理,怎么就不生效了?
本地配置是这样的:
server: {
proxy: {
'/api': {
target: 'https://third-party-api.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^/api/, '')
}
}
}
线上 Nginx 也加了 proxy_pass,但浏览器还是报 has been blocked by CORS policy,是不是漏了什么头?
Access-Control-Allow-Origin头,浏览器照样拦。直接在 Nginx 里加这三行:
注意
proxy_pass路径末尾加/才会重写路径,不然路径会带/api/。