使用request.js代理post失败的问题

 

前面写过一篇使用request.js做代理的文章,可能眼睛敏锐的朋友已经看出在代理POST方法时和代理其它请求方式是有区别的, 现在我来说一下为什么要这么处理。

 

相信很多人都采用这种方式去代理POST方法,但是你有可能代理不过去,请求会被挂起!

req.pipe(request({
    method: 'POST',
    uri: 'http://localhost:8080/api'
})).pipe(res);

为什么呢?

因为你可能使用了body-parse中间件

require('body-parser').urlencoded({extended: false})

 

解决方案:

  1)删除urlencoded中间件

  2)改用如下方式代理(取出body后重新组装发送)

request.post({
     uri: 'http://localhost:8080/api',
     form: req.body
}).pipe(res);

 

参考文献:

  https://github.com/request/request/issues/1664

 

转载于:https://www.cnblogs.com/zhen-rh/p/7475080.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值