如何告诉jQuery AJAX请求是否成功?

时间:2011-06-05 20:20:26

标签: jquery ajax

我正在尝试通过jQuery提交带有AJAX的表单:

$('.submit input').click(function() {return false;});

$("#addcourseform").submit(function(event) {
    event.preventDefault();
    var formcont = $(this).serialize();
    $.post({
        type:"POST",
        url: "<?php echo base_url(); ?>handover/courseadd",
        data: formcont,
        success: function(returned) {
            alert("It worked: "+returned);
        }
    });
});

上面的代码包含在ready()中,在控制台中没有返回错误,以及所有好东西。但是,似乎将[object Object]附加到POST URL的末尾。由于我使用CodeIgniter,因此它会引发400 Bad Request,因为它在URL中包含不允许的字符。

如何通过添加jQuery来获取jQuery?

编辑后固定:

对于那些未来读过这篇文章并认为我是白痴的人,我确实使用了post()语法错误。

3 个答案:

答案 0 :(得分:6)

$。发布 $。ajax 不同,因此您必须以不同方式提供参数。

试试这个:

$.post("<?php echo base_url(); ?>handover/courseadd", 
        $(this).serialize(), 
        function(returned){     
            alert("It worked: " + returned);
        });

或者在当前代码中将发布替换为 ajax

答案 1 :(得分:4)

编辑:这实际上是jQuery中最老的错误 - 您可能忘记将整个事件包装在ready()处理程序中。 :)

JSFiddle that works

答案 2 :(得分:2)

您还有另一种语法错误:

var formcont = $(this).serialize());

删除最后一个)

var formcont = $(this).serialize();

在您的浏览器中查看您的控制台,它应该记录这些类型的问题,以便您轻松发现。