vue proxy发出的post请求出现超时导致的canceled

博客介绍了在Vue开发环境中遇到POST请求被取消的问题,通过配置http-proxy-middleware解决。在Vue的devServer中设置proxy,针对POST请求修改Content-Type并手动写入请求体,确保了请求的正确发送。同时,注意路径匹配的顺序,避免不正确的路径覆盖。解决方案来自于官方GitHub仓库的issue讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 问题

vue的proxy代理好了之后,get请求没问题,post请求出现canceled,如下图所示:
超时canceled
post请求

解决方案

参考

https://github.com/chimurai/http-proxy-middleware/issues/40

  devServer: {
    host: '0.0.0.0',
    port: 8085,
    proxy: {
      '/api': {
        target: 'http://192.168.100.195:8088',
        changeOrigin: true,
        onProxyReq:function (proxyReq, req, res, options) {
          if (req.body) {
            let bodyData = JSON.stringify(req.body);
            // incase if content-type is application/x-www-form-urlencoded -> we need to change to application/json
            proxyReq.setHeader('Content-Type','application/json');
            proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
            // stream the content
            proxyReq.write(bodyData);
          }
        }
      }
    },
    before: require('./mock/mock-server.js')
  },

注意

  1. 匹配具有顺序关系,如匹配/aa,/aa/bb,如果/aa/bb放在/aa前面,就不会匹配到/aa

经验

要去所属代码库的issue下面找答案

进阶

如果遇上POST+FromData也会出错

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RayFet

你的鼓励是我进步的第二大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值