Javascript 如何正确获取jQuery post函数的响应?
我是js新手,我的节点应用程序有问题。 我在客户端有这样一个函数:Javascript 如何正确获取jQuery post函数的响应?,javascript,jquery,node.js,json,express,Javascript,Jquery,Node.js,Json,Express,我是js新手,我的节点应用程序有问题。 我在客户端有这样一个函数: $('form#formNewCustomer').submit(function (e) { e.preventDefault(); var $form = $(this); $.post( $form.attr("action"), $form.serialize(), function (data) { alert("fi
$('form#formNewCustomer').submit(function (e) {
e.preventDefault();
var $form = $(this);
$.post(
$form.attr("action"),
$form.serialize(),
function (data) { alert("first success") },
"json"
).done(function () {
alert("second success");
}).fail(function () {
alert("error");
}).always(function () {
alert("finished");
});
});
在服务器端有这样一个功能:
app.post('/customer',
[
check('email', "Invalid E-mail.").isEmail().normalizeEmail().optional({ checkFalsy: true }),
check('name', "Empty name").trim().isLength({ min: 2 }).escape(),
],
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
console.log(errors)
return res.status(422).json({ errors: errors.array() })
} else {
collection.insertOne(req.body)
.then(result => {
//do something
})
.catch(error => console.error(error))
}
})
问题是,它总是向“fail”函数发出警报,我该怎么做才能正确返回并向“check”消息发出警报(“例如,无效电子邮件”)如果它发出警报失败,请检查浏览器控制台以查看错误是什么。使用jquery的ajax方法时,422状态为失败,并将进入错误处理程序。有关更多信息,请查看错误处理程序的参数。