【问题标题】:ajax done or fail fire before server responseajax 在服务器响应之前完成或失败触发
【发布时间】:2017-10-24 15:09:09
【问题描述】:

我有一个问题,当我使用 ajax 将数据发布到我的 express(nodejs) 服务器时,我在服务器端有一个回调函数,在完成数据库访问后,然后响应客户端 ajax。 但是,我发现,在我的服务器回调函数完成之前,ajax .fail 会触发。我尝试设置超时 10000,但是,ajax .fail 总是直接触发。

服务器:Express(Node.js) 客户端:JQuery(3.2.1) 由 ajax 发布

ajax 代码:

    $('#createNewGroup').click(function() {
        $('#loading').show();

        $.ajax({
           url: 'list_live_createNewGroup',
           type: 'POST',
           cache: false,
           data: {  groupname: $('#groupname').val(),
                    groupdesc: $('#groupdesc').val(),
                    grouplocation: $('#grouplocation').val(),
                    accountname: $('#accountname').val(),
                    accountid: $('#accountid').val(),
                    bankname:  $('#bankname').val() }})
        .done(function(data) {

            $('#loading').hide();

            window.location.hash = '#mygroups';
            window.location.reload(true);
        })
        .always(function(data) {

        })
        .fail(function(data) {
            $('#loading').hide();

            var response = JSON.parse(data["responseText"]);
            alert(response["msg"]);

            window.location.href = "list#creategroup";

        });
    });

服务器端代码:

router.post('/list_live_createNewGroup', tools.checkUserLogin, function(request, response) {
    var currentUser = new Parse.User();
    currentUser.id = request.session.user;

    .......

    newUserGroup.save(null, {
        success: function(newUserGroup)  {

            response.json(true);
        },
        error: function(newUserGroup, error) {
            response.json(true);
        }
    });



});

【问题讨论】:

  • tools.checkUserLogin 可能会返回一些响应。
  • 我删除了 tools.checkUserLogin,还是一样。

标签: node.js ajax express


【解决方案1】:

做了一些修改后,我找出了真正的问题。 为了我使用 JQuery 来控制 Button 将信息发布到服务器端。但是,我的 html 写

<input type="submit" id="createNewGroup">

输入类型“提交”会混淆 JQuery 做其他事情。因此,我将输入类型更改为按钮,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多