我是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));
}
});
任何帮助将不胜感激。 提前谢谢。
答案 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); }