在开发过程中,前端为什么需要配置代理
什么是同源策略下面有具体说明。
前端开发为啥需要配置代理:主要因为前后端分离开发模式,导致前端发出的请求违背了浏览器的同源策略,这样就会出瑞跨域问题,所以在前开发中,需要配置一个代理层,代理浏览器发出的所有请求,这样由于在是同一个源下发出的请求,不存在跨域问题,由这个代理层转发前端的所有请求到服务端,完美解决跨域问题
浏览器的同源策略
-
协议不同(如
http://和https://)。 -
域名不同(如
example.com和api.example.com)。 -
端口不同(如
http://example.com:3000和http://example.com:5000)。
如何配置(vite版)
// vite.config.ts
export default defineConfig({
...
server: {
proxy: {
'/api': {
target: 'http://your-api-server.com', // 目标服务器地址
changeOrigin: true, // 是否改变源
rewrite: (path) => path.replace(/^/api/, ''), // 重写路径
},
},
proxy: {
'/auth': {
target: 'http://your-api-server.com', // 目标服务器地址
changeOrigin: true, // 是否改变源
rewrite: (path) => path.replace(/^/api/, ''), // 重写路径
},
},
},
...
})
相关字段说明:
'/api'代理层会拦截所有以此开头的请求target目标服务器的地址changeOrigin是否将请求头中的host修改为目标地址(避免因跨域导致请求失败)rewrite重写path 如:将/api/user重写为/user