繁体   English   中英

NodeJS请求未对整个表单进行编码

[英]NodeJS request doesn't encode the entire form

任务很简单,我用POST请求( https://banana.com/endpoint/swap.php )请求端点,并给我它的形式: { banana: ["China's Red", "Sweden's Gray"], apples: [] }并发送。 但是,我正在使用的NodeJS的请求模块不会对空数组进行编码(在本例中为“ apples”),并且如果端点未收到“ apples”数组,则会返回错误-“无效的JSON”。 我尝试使用已经编码的字符串来执行此操作,并且效果很好。 我也无法将我的json字符串化,然后使用encodeURI() ,因为它随后将在它们周围给出“香蕉”和“苹果”引号,这些引号将被编码-不用说,端点也不喜欢那样。

如果有人至少可以指出我正确的方向,我将不胜感激。 由于我不确定如何进行此操作,而不会创建一些糟糕的意大利面条代码。

data = { banana: ["China's Red", "Sweden's Gray"], apples: [] }   
result = JSON.parse(JSON.stringify(data))  .

香蕉和苹果不会给您带来双重的好处,如果您需要访问,请访问它

console.log(result.banana)
console.log(result.apple)

因此,如果您需要在发布请求中提供此结果,则-

url = 'your url';
const options = {
  url: url,
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Accept-Charset': 'utf-8'
  },
  json: result
};
request.post(options, function (err, response, body) {
// do something with your data
})

让我知道这个是否奏效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM