vue 设置代理后,get请求正常,post请求报403

164 阅读1分钟

在vite.config.js中配置了本地服务代理后,get请求正常200、

  server: {
    proxy: {
      '/admin-api': {
        target: 'https://manageserver.qingbeidigital.com',
        changeOrigin: true,
        rewrite: path => path.replace(/^\/admin-api/, '/admin-api'), // Vite推荐写法 
     }

可是问题来了,当我使用post请求时,报了403??????什么鬼, 查阅各种资料,什么鉴权options乱七八糟,最后是因为浏览器在跨域POST请求时会自动添加OriginReferer等头部,可能被服务器拦截。需在Vite代理配置中移除这些头部:

    export default defineConfig({
      plugins: [vue()],
      server: {
        proxy: {
          '/admin-api': {
            target: 'https://manageserver.qingbeidigital.com',
            changeOrigin: true,
            rewrite: path => path.replace(/^\/admin-api/, '/admin-api'), // Vite推荐写法
            configure: (proxy) => {
              proxy.on('proxyReq', (proxyReq) => {
                proxyReq.removeHeader('origin');
                proxyReq.removeHeader('referer');
              });
            }
          }
        }
      },
      resolve: {
        alias: { '@': path.resolve(__dirname, './src') }
      }
    })

主要是configure中移除Origin和referer这个玩意,完美解决!!!!!