所以我有这个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;
});
});
答案 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开发时,有用的东西。