CodeIgniter JQuery Post无法读取Json响应

时间:2017-10-15 07:48:34

标签: jquery ajax codeigniter

我是Jquery的新手。我试图从Codeigniter获取一些数据,我使用Fiddler并验证我的控制器发回有效的Json响应,但JQuery没有触发函数。

这是我的Jquery Post代码。

 $.post('<?=base_url();?>index.php/location/get_state_city', {'state_id' : this.value,'city' : neighbor}, function(data) 
        {
            alert('inside function' + data);
        }, 'json');

以下是我从Codeigniter控制器返回的响应,如Fiddler

所示
  

HTTP / 1.1 200好的   日期:2017年10月15日星期日07:20:21 GMT   服务器:Apache / 2.4.23(Win64)PHP / 5.6.25   X-Powered-By:PHP / 5.6.25   内容长度:125   保持活跃:超时= 5,最大= 99   连接:保持活力   内容类型:text / html;字符集= UTF-8   {“data_type”:“成功”,“data_val”:“选择城市&lt; /选项&gt; BOSTON&lt; /选项&gt;”,“loc”:“1”}

我也试过AJAX,它进入Error函数并显示此错误。

  

ajax“readyState”:0,“responseText”:“”,“status”:0,“statusText”:“error”

Ajax代码:

 $.ajax({
            type: "POST",
            url: "<?php echo base_url('Location/get_state_city'); ?>",
            data: postData,
            datatype : 'json',
            success: function(data){
                alert( "Data fetched: " + data );

            },error : function(data2) {
                alert('Failed' + JSON.stringify(data2));
                }
        });

任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

以下是代码

public function get_state_city(){
  $state_id = $this->input->post('state_id');
  $loc_res = $this->location_model->get_neighborhoodcity(array('where' => array('state_id' => $state_id), 'status' => '1', 'debug' => FALSE));
  $neigh   = (int)$this->input->post('city');
  if(is_array($loc_res) && !empty($loc_res)){
      $neighbour = '<option value="">Select City</option>';
      foreach($loc_res as $key => $val){
          $neighbour .= '<option value="'.$val['id'].'" '.($val['id'] == $neigh ? ' Selected = "selected"' : '').'>'.$val['name'].'</option>';
      }
     $neighbour, "loc" => $state_id);
      $loc_data = array('data_type' => 'success',"data_val" => $neighbour, 'loc' => $state_id);
  }else{
      $loc_data = array('data_type' => 'error', 'data_val' => '', 'loccccc' => $state_id);
  }

  echo json_encode($loc_data);  }