ajax成功回调无法正常工作

时间:2012-01-17 20:20:12

标签: 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;
}); 
});

1 个答案:

答案 0 :(得分:3)

尝试更换:

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开发时,有用的东西。