javascript - 向客户端发送ajax错误问题

标签 javascript jquery ajax node.js

我正在 Node 中构建一个应用程序,并且正在处理错误处理方面。我正在使用 ajax 将表单中的数据发布到我的服务器,然后上传到我的 postgresql 数据库中。限制之一是电子邮件必须是唯一的,否则会引发错误。我能够在服务器端控制台上打印错误,但我希望错误也能在客户端浏览器上 console.log 和/或发出警报。这是我尝试过的:

客户端:

$("#submit").click(function() {
    var data = {
        first_name: $("#firstName").val(),
        last_name: $("#lastName").val(),
        email: $("#email").val(),
        password: $("#password").val()
    };

    $.ajax({
        type: "POST",
        url: "/add",
        data: data,
        success: function() {
            console.log('success');
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert('some error');
        }
    });
});

服务器端:

router.route('/add').post(function(req, res) {                         
    knex('users').insert({
        first_name: req.body.first_name, 
        last_name: req.body.last_name,
        email: req.body.email,
        password: req.body.password
    }).then().catch(function(error){
        console.log("ERROR ERRROR ERROR " + error) //prints on console 
        res.send(error);
    });
});

使用这段代码,问题是客户端没有调用错误函数...有人可以帮忙吗?

提前谢谢您!

最佳答案

这正是 ajax 中的成功错误的用途。您可以使用它来发送成功或错误状态代码。例如:res.send(400)res.send(200)

您还可以随响应一起发送数据,例如 res.send(400, data)

当然,您可以使用任何您认为方便的其他 HTTP 代码。

现在,在

error: function(data)) {
   alert('some error');
}

应该触发警报

关于javascript - 向客户端发送ajax错误问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453663/

相关文章:

javascript - SVG 形状和文本拖放

php - 第一次访问索引后启动屏幕消失

javascript - 如何通过内置的 Ajax 框架使用 October CMS 为 Select2 提供数据源

javascript - 仅当选项卡处于事件状态时才运行 setTimeout

php - 获取通知每当 MySQL 表在 PHP 中更新时没有任何刷新并且服务器上没有太多负载

javascript - 飞行前响应中的 Access-Control-Allow-Methods 不允许方法 PATCH

javascript - Chromecast HTML 按钮

javascript - 如何修复 React 中的不变违规?

javascript - 王牌 :datatable filter listener

javascript - 在现有 jQuery Accordion 下拉菜单的内容顶部添加一个下拉框,将内容向下推