我有一个具有此功能的 Node.JS POST服务:
exports.createUser = function(req, res) {
var newUser = new User(req.body);
newUser.save(function(err, user) {
if (err) {
console.log(err);
res.send(err);
}
console.log(user);
res.json(user);
});
};
如果我在Postman中发出 POST请求,一切都很好,结果用户对象将打印在控制台中,我也接收在Postman中:>
{
"_id": "5bf08768d2af0932fc263b8c",
"Username": "a34324",
"FirstName": "43242",
"LastName": "3424",
"Password": "23423432",
"Permission": 0,
"__v": 0
}
(结果的控制台版本和Postman版本之间的唯一区别是,在Postman中,键位于“” -s之间,而在在控制台中,它们不是。 objectId 也在“” -s中,而在控制台中,不是 >。)
但是,如果我想通过Ajax通过客户端从我的客户端使用此POST服务,则该用户对象将打印在控制台中,但我的浏览器未收到该对象 >。
$(document).ready(function(){
$("#signup").submit(function(event){
var formData = $(this).serializeArray();
$.ajax({
url: "myUrl",
type : "POST",
dataType: "json",
data : formData,
success: function(data ) { alert("success: " + data); },
error: function(data) { alert("error: " + JSON.stringify(data)); },
complete: function(xhr, status){ alert("complete: " + status);}
});
return false;
})
});
弹出的顺序是:
错误:{“ readyState”:0,“状态”:0,“ statusText”:“错误”}
完成:错误