ajax请求在Postman中工作,而不是在代码中

时间:2018-01-17 11:05:38

标签: jquery node.js ajax rest postman

我有一个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");
});

1 个答案:

答案 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提供上述解决方案。