【问题标题】:Error with Jquery Ajax Success Event and Receiving Response MessageJquery Ajax 成功事件和接收响应消息出错
【发布时间】:2013-07-01 17:16:10
【问题描述】:

我正在调用 jQuery Ajax 函数,一切正常。除了它没有收到任何响应并将其附加。

提交表单时..调用 beforeSend 事件并成功运行加载图像,并且还有一个带有“已删除”消息的警报框,但未附加来自页面的请求和响应....在网络选项卡中chrome,我可以看到已删除所选帖子的消息...但它没有附加到页面中。

$(document).ready(function() {
    $("#post").submit(function() {
        var post = $('#post').val();
        var token = $('#token').val();
        var str = 'token='+ token + '&post='+ post;
        $.ajax({
            type: "POST",
            cache: false,
            url: "http://localhost/delete.php",
            data: str,
            beforeSend: function(){
                $("#post").html('<img src="http://localhost/loader.gif" align="absmiddle">&nbsp;Deleting...');
           },
            success: function(msg) {
                alert('Deleted');
                $("#post").ajaxComplete(function(event, request, settings) {
                    $("#post").html(msg);
                });
            }
        });
        return false;
    });
});

【问题讨论】:

  • 您可以删除 '$('#post').ajaxComplete()' 并仅使用 '$('#post').html(msg);'
  • 这是唯一的解决方案吗?但是有人说我要使用 ajaxComplete 函数?
  • 试试这个,ajaxComplete和success函数是多余的。 ajaxComplete 是用于 $.ajax 之外的,这会触发所有 ajax 函数成功

标签: javascript jquery ajax-request


【解决方案1】:

在 AJAX 查询成功后,您将 新事件侦听器 附加到 #post。基本上你说的是,“在这个查询成功后,等待另一个查询成功,然后更改 HTML。”由于查询已经成功,需要去掉ajaxComplete,直接使用:

success: function() {
    alert('Deleted');
    $("#post").html(msg);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2016-10-16
    相关资源
    最近更新 更多