2016-06-09 70 views
0

我目前正在尝试调试代码点火器(3)的方法。我有一个名为sync的方法,它同步(保存)数据库中的表单数据。它被称为使用jQuery/AJAX。点击提交按钮后,它返回一个状态代码为200的XHR(和一个空的响应文本) - 表明调用本身看起来是成功的,但它仍然会抛出一个解析错误。我把一些log_message()标志,找出方法似乎崩溃:AJAX /代码点火器抛出parsererror,方法不叫

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); 
      } 
     }) 

有谁知道如何调试这样的错误呢?

+0

是你的Bage清爽吗? – madalinivascu

+0

@madalinivascu不,不是。也不应该这样。 –

+1

你不能有一个解析错误,并返回一个200响应,通常你会得到一个500错误,你启用错误报告 – madalinivascu

回答

0

我希望这是适当的,因为这个问题的寿命很短。我发现了问题所在:

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

显然,通话将被重定向,所以"annotate/sync"被重定向到简单"annotate/"。我想我必须更多地阅读CodeIgniter的路由。

0

请删除dataType:'json',因为它没有响应任何json数据,因为我看到了。还请检查url是否正确给定