使用node.xs使用application / x-www-form-urlencoded在post请求中发送数组

时间:2015-04-01 06:55:44

标签: javascript node.js post express

我尝试向API发送post请求,post参数应该是数组, 这是如何在cURL中发送它

curl http://localhost:3000/check_amounts
  -d amounts[]=15 \
  -d amounts[]=30

我尝试使用请求模块

在Node.js中执行此操作
request.post('http://localhost:3000/check_amounts', {
        form: { 
                'amounts[]': 15 ,
                'amounts[]': 30
              }
    }, function(error, response, body) {
        console.log(body)
        res.json(body);
    });

但第二个金额覆盖第一个金额,API获得如下结果:amounts = [30]

然后我尝试以不同的方式发送它

 request.post('http://localhost:3000/check_amounts', {
            form: { 
                    'amounts[]': [ 15 , 30]
                  }
        }, function(error, response, body) {
            console.log(body)
            res.json(body);
        });

但结果不是预期的amounts = [{"0":15},{"1":30}]

注意:标题应包含'内容类型':' application / x-www-form-urlencoded'不是' application / json'

有没有人能解决这个问题?

1 个答案:

答案 0 :(得分:5)

如果您阅读了请求手册,这很容易。您应该做的就是用querystring而不是object替换表单,在您的情况下应该是:

amounts=15&amounts=30

我唯一不确定的是上述表达式在您的Web服务器中有效。据我所知,它在java struts中运行良好。所以,如果没有,你可以尝试 而是amounts[]=15&amounts[]=30。希望它有所帮助。