Ant design 项目 proxy post请求 504 问题

预期的与服务端交互

根据ant-design-pro 文档显示,项目利用roadhogrc.mock.js 来mock数据或者proxy反向代理服务端请求。

export default noProxy ? {
  'GET /api/(.*)': 'https://your.server.com/api/',
  // 同理,我写了一个POST
  'POST /api/(.*)': 'https://your.server.com/api/',
} : delay(proxy, 1000)

然后执行

npm run start:no-proxy

问题发现(post 504超时)

这时候我遇到了一个问题,在GET请求的时候,请求能够被实际转发。但是POST请求则会一直pending直到 504 ,node 报错


[HPM] Error occurred while trying to proxy request /Pub/Index/login from localhost:8000 to http://127.0.0.1:9000 (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)

image.png

解决办法

百思不得其解,网上有各种类型的说法,但是没有找到好的解决方案。无奈之下,只能追本溯源去查看roadhog项目。
文档中写了对于webpack的配置,需要在根目录新建.webpackrc或者.webpackrc.js配置文件。把proxy配置在.webpackrc文件中如下所示

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

大功告成!

最后一个小tips,如果需要代理所有的请求,可以写成如下所示:

  "proxy": {
// 注意这个 **
    "**": {
        "target": "http://xxx.com",
        "changeOrigin": true
    }
   }   

proxy配置参考

webpack使用http-proxy-middleware中间件。

总结

还是没有弄明白按照开始的流程,为什么post请求会出现504问题。希望有大佬指点一波

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,748评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • 百味人生苦难会 参佛悟理善相随 中只跋扈不可取 祸福临身皆己为
    善正人生阅读 1,697评论 1 1
  • 我希望在读爱不完课程中,领悟到更多教养孩子智慧,让我感受到希望和力量。 我希望能够有意识的留一只眼睛看自己,一发现...
    zm_3067阅读 2,047评论 0 8
  • 孤独的小村,小镇传来一对老人的笑声,老爷爷已经将近有74岁,老奶奶68岁,他们的相遇是在一所高中,曾经老爷爷是一个...
    糖糖蜜汁阅读 3,184评论 0 1

友情链接更多精彩内容