前端代理原理

129 阅读1分钟

在开发过程中,前端为什么需要配置代理

什么是同源策略下面有具体说明。

前端开发为啥需要配置代理:主要因为前后端分离开发模式,导致前端发出的请求违背了浏览器的同源策略,这样就会出瑞跨域问题,所以在前开发中,需要配置一个代理层,代理浏览器发出的所有请求,这样由于在是同一个源下发出的请求,不存在跨域问题,由这个代理层转发前端的所有请求到服务端,完美解决跨域问题

浏览器的同源策略

  • 协议不同(如 http://https://)。

  • 域名不同(如 example.comapi.example.com)。

  • 端口不同(如 http://example.com:3000http://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