我有一个Web应用程序向node.js中的服务器发出ajax请求,但是在请求时,我总是在服务器控制台中收到错误:
SyntaxError:位于0位置的JSON中的意外标记#
然而在Postman中,我发送了相同的请求,它完成得很好。我确定在我的ajax请求中出现了问题,但我已经在这方面工作了好几天而且我无法弄清楚是什么。
这是ajax请求:
$.ajax({
contentType: 'application/json',
url: "/insert/image_data",
method:"post",
data: {
tags: tag,
cats: cat
},
dataType: "json",
success:function(res){
console.log(res);
},
error: function(err){
console.log(err);
}
});
这是服务器处理程序:
app.post("/insert/image_data", function(req, res){
let imageData = req.body;
console.log("/insert/image_data route reached");
console.log("--> imageData = ", prettyjson.render(imageData));
res.status(200).send("Req GOOD");
});
答案 0 :(得分:1)
根据评论的建议,通过使用JSON.stringify将请求数据转换为有效的JSON格式来解决问题。这是工作代码:
$.ajax({
contentType: 'application/json',
url: "/insert/image_data",
method:"post",
data: JSON.stringify({
tags: tag,
cats: cat
}),
dataType: "json",
success:function(res){
console.log(res);
},
error: function(err){
console.log(err);
}
});
感谢@gargkshitiz和@DannyDainton提供上述解决方案。