gpt4 book ai didi

javascript - Node 中的 request.post 抛出 { code : undefined, Reason: 'Argument error, options.body.' }

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:57 25 4
gpt4 key购买 nike

我在尝试执行 request.post 时收到以下错误。这很令人困惑,因为它似乎首先引用了我的选项的 body ,但随后提示第一个参数应该是字符串或缓冲区。

{ 代码:未定义,原因:'参数错误,options.body。' }
卫生部!
_http_outgoing.js:454
throw new TypeError('第一个参数必须是字符串或缓冲区');
^
类型错误:第一个参数必须是字符串或缓冲区

我尝试将 url 值更改为字符串,但这并不能解决问题。

这是我的代码的样子。正如您所看到的,我已经注销了 reqOptions 并验证了该 url 确实已传递给 request.post,所以我不确定问题是什么。为任何帮助干杯!

var reqOptions = {
url: options.host,
body: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
console.log('CHECK OPTIONS :: ', reqOptions);
request.post(reqOptions, function (err, resp) {...}

最佳答案

如果 formData 是一个对象,您可能需要使用 requestform: option而不是body:。这将字符串化对象并设置 Content-Type header 。

var reqOptions = {
url: options.host,
form: formData
};
console.log('CHECK OPTIONS :: ', reqOptions);
request.post(reqOptions, function (err, resp) {...});
<小时/>

body: 选项需要一个字符串、Buffer 或 ReadStream 值。如果不使用 form:,您就必须自己对对象进行字符串化。

var qs = require('querystring');

var reqOptions = {
url: options.host,
form: qs.stringify(formData),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};

关于javascript - Node 中的 request.post 抛出 { code : undefined, Reason: 'Argument error, options.body.' },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44594055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com