没有收到回复 - ajax,codeigniter

时间:2017-03-15 12:04:14

标签: angularjs ajax codeigniter

Ajax |角度控制器,

$scope.counting=function(id){
  if(id){
     $.ajax({
      type: "POST",
      url: baseUrl()+'/index.php/site/count',
      data:{"id":id},
      dataType: "json",
      contentType: 'application/json', 
      success: function(data) {
       console.log(data);
    },
      error: function() {
       console.log('no response');
    }

  });     

}

输出 没有回应

Codeigniter控制器,

public function count()
{  
    $input_data = json_decode(trim(file_get_contents('php://input')), true);
    print_r($input_data); die;
}

我收到了帖子数据,但我无法收到任何回复。 问题似乎出现在json_decode部分,但看起来很好。

查看,

<li ng-click="counting(<?php echo $value->id;?>);" class="count"><button type="submit" name="count"> <i class="fa fa-heart-o"></i></button></li>

2 个答案:

答案 0 :(得分:0)

从您的控制器使用@task = Task.newjson格式将响应发送回js。由于json_sncode()print_r()中打印数组,php将无法识别它。但您可以在js的{​​{1}}标签中看到数组作为回复。

network

答案 1 :(得分:0)

我找到了一个更合理的解决方案。

我删除了视图中的按钮标记

<li ng-click="counting(<?php echo $value->id;?>);" class="count"> <i class="fa fa-heart-o"></i></li>

这样做,我得到了回应。

我想,'type = submit'将按钮值直接发布到codeigniter控制器,并且'li'也调用了ajax函数,该函数也将'id'发布到控制器。

但是,由于'按钮类型提交'被重定向到功能计数(或者说是一个新页面),响应无法显示,因为响应来自之前的控制器功能(或者我应该说先前页)。即使删除'type = submit'也适用于这种情况。