JavaScript的&Node.js的
JavaScript的&Node.js的 - 在控制器功能不正确的JSON字符串
我通过AJAX发送JSON在Node.js的路线但是,当我在Node.js的功能获取req.body ...的JSON看起来不正确。我在想什么?
JavaScript的:
var getID = $('.input-id').val();
var getName = $('.input-name').val();
var books = $('.select-books').val();
var books = books.map(function(book) {
return {id: book};
});
var dataaddID = {};
dataaddID['add'] = { id : getID, name : getName, books };
var jsonaddID = JSON.stringify(dataaddID);
console.log(jsonaddID);
$.ajax({
url:'/books/add',
type:'POST',
headers: {'X-CSRF-Token': csrfKey},
dataType: 'json',
data: jsonaddID,
success:function(data){
console.log(data);
}
});
控制台结果:
{"add":{"id":"T1088","name":"Zynula","books":[{"id":"1"},{"id":"2"}]}}
Node.js的路线/功能
postBooks: async (req, res, next) => {
console.log(req.body);
var getBody = JSON.stringify(req.body);
console.log(getBody);
}
怪异的结果:
{ '{"add":{"id":"T1088","name":"Zynula","books":': { '{"id":"1"},{"id":"2"}': '' } }
{"{\"add\":{\"id\":\"T1088\",\"name\":\"Zynula\",\"books\":":{"{\"id\":\"1\"},{\"id\":\"2\"}":""}}
预期结果:
{"add":{"id":"T1088","name":"Zynula","books":[{"id":"1"},{"id":"2"}]}}
...
回答如下:
尝试发送数据之前没有JSON.stringify()
去。我相信阿贾克斯将序列化它。
JavaScript的&Node.js的
JavaScript的&Node.js的 - 在控制器功能不正确的JSON字符串
我通过AJAX发送JSON在Node.js的路线但是,当我在Node.js的功能获取req.body ...的JSON看起来不正确。我在想什么?
JavaScript的:
var getID = $('.input-id').val();
var getName = $('.input-name').val();
var books = $('.select-books').val();
var books = books.map(function(book) {
return {id: book};
});
var dataaddID = {};
dataaddID['add'] = { id : getID, name : getName, books };
var jsonaddID = JSON.stringify(dataaddID);
console.log(jsonaddID);
$.ajax({
url:'/books/add',
type:'POST',
headers: {'X-CSRF-Token': csrfKey},
dataType: 'json',
data: jsonaddID,
success:function(data){
console.log(data);
}
});
控制台结果:
{"add":{"id":"T1088","name":"Zynula","books":[{"id":"1"},{"id":"2"}]}}
Node.js的路线/功能
postBooks: async (req, res, next) => {
console.log(req.body);
var getBody = JSON.stringify(req.body);
console.log(getBody);
}
怪异的结果:
{ '{"add":{"id":"T1088","name":"Zynula","books":': { '{"id":"1"},{"id":"2"}': '' } }
{"{\"add\":{\"id\":\"T1088\",\"name\":\"Zynula\",\"books\":":{"{\"id\":\"1\"},{\"id\":\"2\"}":""}}
预期结果:
{"add":{"id":"T1088","name":"Zynula","books":[{"id":"1"},{"id":"2"}]}}
...
回答如下:
尝试发送数据之前没有JSON.stringify()
去。我相信阿贾克斯将序列化它。