我整天都遇到问题,通过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请求的问题,因为它给了我一个意外的令牌错误,但我不知道是什么导致它。有什么想法吗?
答案 0 :(得分:2)
尝试删除contentType: "application/json",
如果你使用没有标题的邮递员,很可能这会导致解析器失败。