使用request.js代理post失敗的問題

 

前面寫過一篇使用request.js作代理的文章,可能眼睛敏銳的朋友已經看出在代理POST方法時和代理其它請求方式是有區別的, 如今我來講一下爲何要這麼處理。html

 

相信不少人都採用這種方式去代理POST方法,可是你有可能代理不過去,請求會被掛起!git

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

爲何呢?github

由於你可能使用了body-parse中間件api

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

 

解決方案:post

  1)刪除urlencoded中間件ui

  2)改用以下方式代理(取出body後從新組裝發送)url

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

 

參考文獻:spa

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

相關文章
相關標籤/搜索