AJAX / Code Igniter抛出parsererror,方法不称为

时间:2016-06-09 09:54:57

标签: php jquery ajax codeigniter

我目前正在尝试调试Code Igniter(3)方法。我有一个名为sync的方法,它在数据库中同步(保存)表单数据。它使用jQuery / AJAX调用。单击提交按钮后,它将返回状态代码为200的XHR(以及一个空响应文本) - 表示调用本身似乎成功,但它仍然会抛出一个parsererror。我放置了一些log_message()标志来找出方法似乎崩溃的位置:

    public function sync(){
    $i = 0;

    log_message('debug',"Flag ".$i);
    $i++;
    // ... Steps in between, etc.

但是日志记录系统没有注册任何内容,表明同步方法似乎甚至没有被调用。我确信AJAX调用中提交的路径是正确的:

$("#sync-btn").click(function(){
    var form = $("#annotation-sync");

    var submit_form_data = form.serialize();
    console.log(submit_form_data);
    $.ajax({
        type :'POST',
        url : "http://localhost/Project/"+"index.php/annotate/sync",
        data : submit_form_data,
        dataType: 'json',
            encode : 'true',
            beforeSend: function(){
            timeout = setTimeout(function(){
                form.find(".load").fadeIn();
                }, 1000);
            },
            success: function(res) {
                console.log(res);
                $(".navbar-header button").prop("disabled",true);


            },
            error: function(jqXHR, errorThrown) {
                console.log('jqXHR:');
                console.log(jqXHR);
                console.log('errorThrown:');
                console.log(errorThrown);
            }
        })

有谁知道如何调试此类错误?

2 个答案:

答案 0 :(得分:0)

鉴于这个问题的寿命很短,我希望这是合适的。我发现了问题所在:

$route["annotate/(:any)"] = "annotate";

显然,呼叫会被重定向,因此"annotate/sync"被重定向到"annotate/"。我想我必须阅读更多CodeIgniter的路由。

答案 1 :(得分:0)

请删除dataType:' json'因为它没有响应我看到的任何json数据。还要检查网址是否正确