【发布时间】:2018-02-10 08:05:14
【问题描述】:
我有一个在 3000 和 4000 端口上运行的 express js 服务器 并想从服务器 3000 向服务器 4000 发送一个 post 请求
我试过这个:
var post_options = {
url: "http://172.28.49.9:4000/quizResponse",
timeout: 20000,
method:"POST",
encoding: "application/json; charset=utf-8",
body : {data: formdata}
};
request(post_options,
function optionalCallback(err, httpResponse, body) {
if (err) {
console.log(err);
}else
console.log(body);
});
但是得到这个错误:
TypeError: 第一个参数必须是 ClientRequest.OutgoingMessage.write (_http_outgoing.js:456:11) 处的字符串或缓冲区 Request.write (D:\restfullApi\examineerapi\node_modules\request\request.js:1514 :27) 在最后 (D:\restfullApi\examineerapi\node_modules\request\request.js:552:18) 立即。 (D:\restfullApi\examineerapi\node_modules\request\request.js:581:7) at runCallback (timers.js:637:20) at tryOnImmediate (timers.js:610:5) at processImmediate [as _immediateCallback] ( timers.js:582:5)
这不像我想象的那样工作。请帮我解决这个问题。
【问题讨论】:
-
请在执行上述代码时添加您遇到的错误?
-
TypeError: 第一个参数必须是在 ClientRequest.OutgoingMessage.write (_http_outgoing.js:456:11) 在 Request.write (D:\restfullApi\examineerapi\node_modules\request\request .js:1514:27) 在结尾 (D:\restfullApi\examineerapi\node_modules\request\request.js:552:18) 在立即。 (D:\restfullApi\examineerapi\node_modules\request\request.js :581:7) 在 runCallback (timers.js:637:20) 在 tryOnImmediate (timers.js:610:5) 在 processImmediate [as _immediateCallback] (timers.js:582:5)
-
对于正文,要成为json,您必须在
request package中设置json: true。请尝试在您的选项中添加json: true。 -
Axios 也可以做到这一点:github.com/mzabriskie/axios
标签: javascript node.js express