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

时间:2018-09-05 15:33:20

标签: json node.js node-request

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

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

1 个答案:

答案 0 :(得分:0)

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
})

让我知道这是否可行。