VM5601:2未捕获的SyntaxError:意外的令牌<在位置10的JSON中

问题描述:

我想用ajax和jquery获取数据。但我得到这个错误,我不知道如何解决它。VM5601:2未捕获的SyntaxError:意外的令牌<在位置10的JSON中

VM5601:2 Uncaught SyntaxError: Unexpected token < in JSON at position 10

这是我的代码。

型号

public function GetBloodCatById($id) 
{ 
    $this->db->from('tbl_blood_cat'); 
    $this->db->where('id_blood_cat',$id); 
    $query = $this->db->get(); 

    return $query->row(); 
} 

控制器

public function ajax_edit($id) 
{ 
     $data = $this->Blood->GetBloodCatById($id); 
     echo json_encode($data); 
} 

查看

function edit_blood(id) 
    { 
    save_method = 'update'; 
    $('#form')[0].reset(); // reset form on modals 

    //Ajax Load data from ajax 
    $.ajax({ 

     url : "<?php echo site_url('Home/ajax_edit/')?>/" + id, 
     type: "GET", 
     dataType: "JSON", 
     contentType: 'application/json', 
     success: function(data) 
     { 
      $('[name="id_blood_cat"]').val(data.id_blood_cat); 
      $('[name="catName"]').val(data.category); 

      $('#myModalBloodCat').modal('show'); // show bootstrap modal when complete loaded 
      $('.modal-title').text('Edit Blood Cat'); // Set title to Bootstrap modal title 

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

这是数据将要得到

{"id_blood_cat":"1","category":"Plasma","createBy":"nicky","updateBy":null,"createAt":"2017-05-11 18:30:09","updateAt":"2017-05-11 18:30:09","flag":"1"} 

我一直在这个几个小时一直在努力。请帮助我thx。

+0

尝试把一个'退出;''后回声json_encode($的数据);' – gaganshera

+0

检查从控制器 –

+0

没什么变化@gaganshera –

Reomve PHP的标签,并尝试设置URL像数组这样

url : "/Home/ajax_edit/?id=" + id, 
+0

错误404没有找到,因为它只会去我的本地主机而不是我的项目文件夹 –

+0

是你的控制器和操作方法是这样的url – Jay

+0

Yups它是山姆@Jay –

包装JSON是一件好事choice.Here我已经修改了你的函数小

public function ajax_edit($id) 
{  $res = array(); 
     $data = $this->Blood->GetBloodCatById($id); 
     $res = $data; 
     echo json_encode($data); 
} 

和阿贾克斯成功处理程序是像

........ 
success: function(data) 
     { response = $.parseJSON(data); 
      $.each(data, function (i, item) { 
      $('[name="id_blood_cat"]').val(response.id_blood_cat); 
      $('[name="catName"]').val(response.category); 
     } 
     $('#myModalBloodCat').modal('show'); // show bootstrap modal when complete loaded 
      $('.modal-title').text('Edit Blood Cat'); // Set title to Bootstrap modal title 

     }, 
........ 
+0

它不工作仍然得到相同的错误。 –

+0

你的ajax响应是什么,应该是[{“Id”:10,“ContactId”:4554,“ExpirationMonth”:“02”,“ExpirationYear”:“2018”}] – CyberAbhay

+0

{“id_blood_cat”:“1 “,”category“:”Plasma“,”createBy“:”nicky“,”updateBy“:null,”createAt“:”2017-05-11 18:30:09“,”updateAt“:” 11 18:30:09“,”flag“:”1“} –

尝试:url: 'file:///Home/ajax_edit/?id='+id

+0

我得到这个错误 XMLHttpRequest无法加载file:/// Home/ajax_edit /?id = 1。协议方案仅支持交叉源请求:http,data,chrome,chrome-extension,https,chrome-extension-resource。 –

+0

尝试向传递给'$ .ajax'方法的对象添加另一个键:'dataType:“jsonp”,'让我知道这是否可行。否则,尝试在本地主机上服务路径'Home/ajax_edit /',然后将URL更改为'url:http:// localhost: /' –

+0

这就是我得到的 –