javascript - ajax成功回调不起作用

标签 javascript jquery

所以我有这个 JavaScript,它可以正常工作到 $.ajax({。然后它只是卡在加载器上,什么也没有发生。

$(function() {
$('.com_submit').click(function() {
    var comment = $("#comment").val();
    var user_id = $("#user_id").val();
    var perma_id = $("#perma_id").val();
    var dataString = 'comment='+ comment + '&user_id='+ user_id + '&perma_id=' + perma_id;
    if(comment=='') {
        alert('Please Give Valid Details');
    }
    else {
        $("#flash").show();
        $("#flash").fadeIn(400).html('<img src="ajax-loader.gif" />Loading Comment...');
        $.ajax({
            type: "POST",
            url: "commentajax.php",
            data: dataString,
            cache: false,
            success: function(html){
        alert('This works');
                $("ol#update").append(html);
                $("ol#update li:first").fadeIn("slow");
                $("#flash").hide();
            }
        });
    }
    return false;
}); 
});

最佳答案

尝试替换:

var dataString = 'comment='+ comment + '&user_id='+ user_id + '&perma_id=' + perma_id;

与:

var dataString = { comment: comment, user_id: user_id, perma_id: perma_id };

为了确保您发送到服务器的参数被正确编码。还要确保您调用的 commentajax.php 脚本工作正常,并且不会抛出一些错误,在这种情况下,成功处理程序不会被执行,加载器指示器也不会被隐藏。实际上,隐藏加载指示器的最佳方法是使用complete事件,而不是success。即使发生异常,也会触发 complete 事件。

还可以使用 FireBug 等 JavaScript 调试工具来查看幕后到底发生了什么。它将允许您查看实际的 AJAX 请求以及服务器响应的内容。它还会告诉您是否有 javascript 错误等:您知道,当您进行支持 javascript 的 Web 开发时,这些内容非常有用。

关于javascript - ajax成功回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901183/

相关文章:

javascript - 在 Jquery 自动完成中通过箭头键导航下拉框时,不更新文本区域中的值

javascript - 模拟并行行为

javascript - 如何将数据传递到jsp并从servlet在新窗口中打开它

javascript - 使用 Backbone 事件来切换 Collection View 属性或 jQuery.siblings()?

javascript - jquery - 如何确定最后一个动画元素

jquery .data 在 firebug 中不可见?

javascript - 如何在鼠标悬停在第二个 div 上时打开 1 个 div?

javascript - Typescript - 对装饰器的循环依赖

javascript - 如何在javascript中创建实体对象

javascript - 如何在新打开的弹出屏幕上执行javascript/jquery