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', });
试试看,让我们知道控制台正在服务器上打印什么,如果问题仍然存在。