目前dva 2.2.3 proxy会阻塞post请求

本问题和Github Issue 868中提到的是一样的,但其解决方法我试过了在目前dva new出来的项目上是没有用的.

表现为proxy设置后能GET和DELETE,但是如果POST就会被阻塞.

复现方法:(参考教程)

clone https://github.com/umijs/umi-...

其.webpackrc.js如下

export default {
    "proxy": {
        "/api": {
          "target": "http://jsonplaceholder.typicode.com/",
          "changeOrigin": true,
          "pathRewrite": { "^/api" : "" }
        }
      },
}

http://jsonplaceholder.typico... 是一个测试平台
/user GET 方法可以返回一些mock user
/user POST body:{"id":22,"name": "test"}时,会返回 {"id":22,"name": "test"}

npm start之后前端项目的地址是http://localhost:8000, 按webpack中设置好的proxy, 我们访问http://localhost:800/api/users的时候,webpack的devServer会帮我们代理去http://jsonplaceholder.typicode.com/users

上述proxy设置完后:
GET http://localhost:8000/api/users 是正常的
POST http://localhost:8000/api/users 带上body数据会被proxy server阻塞,具体表现为的确去请求http://jsonplaceholder.typicode.com,但是body并不会发送过去,而是被阻塞,我按上文issue中提到的解决方法在header加上"host"字段,并没有起作用.

请诸位高手看看,否则我只能自己的后台服务器设置跨域,然后开发的所有url带上跨域了...

阅读 5.9k
2 个回答
新手上路,请多包涵

解决了吗?兄弟 我现在dva post请求后台接受不到参数啊

如果get方法能获取到url的参数,而post请求获取不到body的参数,很大可能就是后台接口写的有问题。
如果你使用的是springmvc,你可以在参数上加@RequestBody注解,就正常了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏