所以我有这个 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/