Vue3 前端代理设置后,后端还需要设置跨域吗?
如果前端设置了代理 (proxy),并且后端接口的访问路径已经被代理到了另一个地址,那么后端就不需要再设置跨域了。因为跨域是指前端直接访问后端接口时,由于协议、域名、端口号不同而导致的跨域问题,而代理的作用就是将前端的请求代理到另一个地址上,使得前端看到的就是同源的请求。所以,如果前端已经使用了代理,后端就无需再设置跨域了。
例如,在 Vue3 中,你可以使用 proxy 属性来设置代理:
const server = {
port: 2811,
host: true,
open: false,
proxy: {
'/api': {
target: 'http://www.baidu.com/api',
changeOrigin: true,
rewrite: (p) => p.replace(/^/api/, '')
}
},
};
这样,当你的前端请求 /api/xxx 时,就会被代理到 http://www.baidu.com/api/xxx,而浏览器会认为这是同源请求,从而避免跨域问题。
需要注意的是,代理只能解决前端的跨域问题,如果后端接口本身需要访问其他第三方接口,仍然需要设置跨域。
原文地址: https://www.cveoy.top/t/topic/lAVV 著作权归作者所有。请勿转载和采集!