意外的令牌U Ajax语法错误

时间:2017-07-27 14:25:59

标签: javascript json ajax express

我整天都遇到问题,通过ajax将json数据发送到Express。 我的ajax看起来像这样:

$('#saveClause').click(function () {
    var username = document.getElementById('postUserName').innerHTML;
    var clauseTitle = document.getElementById('modalTitle').innerHTML;
    var clauseDescription = document.getElementById('modalDescription').innerHTML;
    var clauseText = document.getElementById('modalText').innerHTML;

    $.ajax({
        url: "/classes/updateAssignment",
        type: "post",
        dataType: "json",
        data: {
            username: username,
            title: clauseTitle,
            description: clauseDescription,
            text: clauseText
        },
        cache: false,
        contentType: "application/json",
        complete: function () {
          console.log("complete");  
        }, 
        success: function () {
            console.log("success");
        },
        error: function () {
            console.log("Process Error");
        }

    });
});

我的Express Classes路线如下所示:

router.post('/updateAssignment', function (req, res) {
    console.log(req.body.username)
    console.log(req.body.title);
    console.log(req.body.description);
    console.log(req.body.text);
    res.type('json');
    res.send({
        some: JSON.stringify({
            response: 'json'
        })
    });


});

我使用此JSON对象向url发出了postman post请求:

{
    "username":"testing",
    "title":"123",
    "description":"j456",
    "text":"seven"
}

并且Express在控制台中记录了所有细节,所以它一定是我的ajax请求的问题,因为它给了我一个意外的令牌错误,但我不知道是什么导致它。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

尝试删除contentType: "application/json",

如果你使用没有标题的邮递员,很可能这会导致解析器失败。