CodeIgniter中的AJAX调用未按预期工作

时间:2015-05-22 16:53:14

标签: javascript php ajax codeigniter

我的javascript文件中有一个ajax调用,它试图将数据发布到我的控制器中的特定函数。当我在调用的成功函数中查看数据时,我得到一个完全不相关的视图的html作为返回的数据,我不确定为什么。

我的AJAX电话:

$(document).scroll(function(){
    if ($(this).scrollTop()>175){
        // animate fixed div to small size:
        $('.wrapper').stop().animate({ height: 57 , 'padding-top': 20},100);
    } else {
        //  animate fixed div to original size
        $('.wrapper').stop().animate({ height: 115, 'padding-top': 0},100);
    }
}); 

我的控制器功能:

function processResults(task_id){
  var finalResults = localStorage.getItem('results');
  console.log(finalResults);

  $.ajax({
    type: 'POST',
    url: 'task/getResults',
    data: {'answers': finalResults},
    success: function(data){
      console.log(data);
    }
 });
} 

ajax调用中的url是否不正确?我不确定为什么输出一个完全不相关的视图的html。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

在AJAX中传递的最后一行controller/method应该是回声。最后你会得到类似的东西:

if ($expression) {
    echo json_encode($something);
} else {
    echo json_encode($something_else);
}

答案 1 :(得分:0)

Tpojka的回答将起作用。

但是有一种更优雅的方式来返回带CI的JSON对象

$this->output
        ->set_content_type('application/json')
        ->set_output(json_encode(array('foo' => 'bar')));

http://www.codeigniter.com/userguide3/libraries/output.html#CI_Output::set_content_type