node.js从jquery ajaxparsing数组

我正在创build一个应用程序,将从jQuery的Ajax发送数组,这里是我的代码:

Ember.$.ajax ({ type:"PUT", url:"http://localhost:3000/ids/", data: { ids:[29,12,43], }, dataType: 'json', }); 

这是我的node.js代码:

 router.put('/ids/', function(req, res) { var data = req.body; console.log(data); console.log(data.ids); }); 

结果是:

{'ids []':['29','12','43']}
未定义

我也尝试遍历它,但代码:

 for (var key in data) { if (data.hasOwnProperty(key)) { console.log(key + " -> " + data[key]); } } 

也不行。 在这种情况下我能做些什么?

'ids[]:'看起来不像JSON一个键的正确格式 – 你确定这是控制台正在打印? 在任何情况下,如果您收到的数据是以stringforms出现的(即使string看起来像JSON ) – 您可以尝试将其parsing为JSON对象。 这里是你的情况的一个例子:

 router.put('/ids/', function(req, res) { var data = req.body; //if the string is a properly formatted JSON, this should pass: var dataJSON = JSON.parse(data); console.log(data); //then see if this gives you what you expect console.log(dataJSON); console.log(dataJSON.ids); }); 

尝试一下,让我知道这是否有帮助。

更新:看到你收到的数据不是一个格式良好的JSON,尝试改变PUT请求到这样的东西:

 Ember.$.ajax ({ type:"PUT", url:"http://localhost:3000/ids/", data: JSON.stringify({'ids':[29,12,43]}), dataType: 'json', }); 

试试看,让我们知道控制台正在服务器上打印什么,如果问题仍然存在。