JQuery ajax()返回200但没有运行成功函数

时间:2013-12-22 12:02:24

标签: jquery ajax codeigniter

我想从mysql表(只有一个字段)中获取一些数据,以便自动填充包含该数据的表单。

我有一个问题,ajax()返回ok(200),但它仍然运行我添加到它的错误函数。

$('#group_id').on('click', function() {
                    $.ajax({
                        url: "localhost/zamzamtravel/home/getPrevApplicantData",
                        dataType: 'json',
                        type: 'GET',
                        data: {group_id:1},
                        contentType: "application/json",
                        success: function(response,data) { alert(response); alert(data); },
                        error: function (xhr, ajaxOptions, thrownError) {
                        console.log(xhr);
                        alert(xhr.status);
                        alert(thrownError);
                    }
                    });

我从我的php脚本中获取json对象(我​​正在使用codeigniter)从我的控制器中获取:

public function getPrevApplicantData()
    {
        $this->output->set_content_type('application/json');
        $data = $this->travel_model->getPrevApplicantData();
        echo json_encode($data);
    }

这是在模型中检索并返回到上述控制器函数的数据:

public function getPrevApplicantData()
    {
        $group_id = $this->input->get('group_id');

        $this->db->select('general_info.address_telephone');
        $this->db->from('general_info');
        $this->db->join('groups', 'groups.group_id = general_info.group_id');
        $this->db->where('general_info.group_id', 1);
        $this->db->distinct();
        $this->db->limit(1);
        $this->db->order_by('general_info.customer_id','asc');
        $res = $this->db->get();


        return $res->result_array();
    }

我附加到点击事件的输入类型是一个单选按钮:

        <input type="radio" name="group_id" id="group_id">

(我想也许我不需要表格,只需制作一个普通按钮,当点击该按钮时它可以运行ajax功能?)

我在jQuery中的devtools中也遇到错误:xhr.send( ( s.hasContent && s.data ) || null );

在存储查询之后从模型函数返回的数组的结构如下:

Array
(
    [0] => Array
        (
            [address_telephone] => 1 somehouse avenue-highpoint-nc-27262-3365550493
        )

)
null

我真的很想知道什么是错的,我所要做的只是一个简单的获取和展示:P

2 个答案:

答案 0 :(得分:0)

$.getJSON("http://localhost/zamzamtravel/home/getPrevApplicantData", {group_id: 1})
    .done(function (data, response) {
    alert(response);
    alert(data);
})
    .fail(function( xhr, textStatus, error ) {
    var err = textStatus + ", " + error;
    console.log( "Request Failed: " + err );
});

答案 1 :(得分:0)

我认为你的php的Json输出需要一个设置为200的状态项,然后使用响应对象来获取数据。

{
  status : 200,
  response:{
      //data here
   }
)