CodeIgniter + jQuery Ajax成功运行但调用了错误回调

时间:2012-05-28 20:30:18

标签: php ajax codeigniter jquery

我有一个非常简单的CodeIgniter项目,可以完成一些简单的数据库工作。目前我有一个控制器方法删除数据库中的项目。在我看来,代码使用jQuery ajax对象来引用该控制器,然后通过其回调显示成功或失败。

问题是,虽然控制器工作正常(按预期删除数据库中的项目),但正在调用ajax“错误”回调,而不是“成功”。

我确定我在这里缺少一些超级基本的东西......

这是我的控制器方法:

public function delete_note()
{
    $this->load->helper('url');
    $this->load->model('auth/user', 'User');
    $this->load->database();

    $note_id = $this->input->post('id');

    $this->db->delete('admin_notes', array('id' => $note_id));
    $this->db->query();

    $this->output->set_status_header('200'); // Attempting to force the issue
}

以下是视图中的代码:

$('.delete_note').each(function(){
    var current = this;

    this.onclick = function(event)
    {
        var note_id = this.title;

        $.ajax({
            type: "POST",
            url: "/admin/delete_note",
            data: { id: note_id },

            success: function(data) { alert('I never see this!');},
            error: function () { alert('I *always* see this!');}
        });
    }
});

任何回答尝试都表示赞赏。任何正确的答案都会受到双重赞赏;)

谢谢!

2 个答案:

答案 0 :(得分:3)

仅仅因为数据库逻辑正在运行,您可能会收到与其他内容相关的问题(可能是跨浏览器?)。要查看错误,请将错误函数更改为:

error: function (jqXHR, textStatus, errorThrown) {
   alert(textStatus);
   alert(errorThrown);
}

答案 1 :(得分:0)

我要感谢WojtekT提醒我查看我在Firebug中的回复。我实际上收到了PHP错误的500状态代码。我无关的$ this-> db-> query();需要删除电话。

现在一切都很好。

谢谢!