Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确获取jQuery post函数的响应?_Javascript_Jquery_Node.js_Json_Express - Fatal编程技术网

Javascript 如何正确获取jQuery post函数的响应?

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

我是js新手,我的节点应用程序有问题。 我在客户端有这样一个函数:

$('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状态为失败,并将进入错误处理程序。有关更多信息,请查看错误处理程序的参数。