vuejs / vue-cli

🛠️ webpack-based tooling for Vue.js Development
https://cli.vuejs.org/
MIT License
29.76k stars 6.33k forks source link

dev-server中的proxy问题,能正常转发后台服务(flask) ,get,post都能正常获取request中的数据,唯独put,delete不行,直接卡住直到前端超时,或者postman主动断链。 #7016

Open glacierck opened 2 years ago

glacierck commented 2 years ago

Version

5.0.1

Reproduction link

[None](vue info)

Environment info

 devServer: {
    host: '0.0.0.0',
    port: devPort,
    open: true,
    noInfo: true,
    overlay: {
      warnings: true,
      errors: true,
    },
    before: mockServer(),
    proxy: {
      '/vab-mock-server': {
        target: 'http://127.0.0.1:5002',
        ws: true, // 代理 websockets
        changeOrigin: true, // 是否跨域
        logLevel: 'debug',
        pathRewrite: {
          '^/vab-mock-server': '',
        },
      },
    },
  },

Steps to reproduce

发送put的请求

What is expected?

后端能读取到‘request.get_data()’中的数据

What is actually happening?

‘request.get_data() ’死锁直到超时


不做代理直接请求put服务是能正常通过‘request.get_data()’获取数据的。

YFengFly commented 2 years ago

Vue CLI 使用的是 http-proxy-middleware 作为转发代理,建议通读该文档与配置。若有问题的话,可能需要在该仓库下提 issue. 不过版本上确实有变化。 Vue CLI 3 、4 版本采用的 http-proxy-middleware 均为 0.19.1 ,而 5 采用的是 2.0.3 从个人实际经验来看,5.0-RC 3 并未遇到过这个问题,从更新文档上看也没有相关修改。可能需要有更多的日志信息...? 既然用了 CLI, 为什么还会经过 postman ?postman主动断链 是啥意思? 完全抛开前端,用 Postman 对接口是正常的吗?