Jquery Ajax没有调用成功方法

时间:2017-03-08 15:30:12

标签: jquery ajax

我有一个不调用成功方法的Jquery Ajax,它只调用错误方法

这是Jquery Ajax:

<script>
   function load_timeline_chart(indicator, entity_id, parentid, indicator_title, datatype){
     $.ajax({
         type:       'POST',
         url:        '<?php echo base_url() ?>entities/get_hf_timeline_chart',
         data: {indicator_id:indicator, entity_id:entity_id, parent_id:parentid,quarter:$(".hf_performance_timeline_period.active").find("a").data("quarter"),year:$(".hf_performance_timeline_period.active").find("a").data("year"),data_type:datatype},
         dataType:   'json',
         beforeSend: function(rep){
            $('#entity_timeline_chart').html('<p class="well well-sm text-info"><i class="fa fa-exclamation-triangle fa-lg"></i>Loading...</p>');
         },
         success: function(rep) {
            alert("success");
         },
         error: function(rep) {
           alert("error");
         }
     });
   }
   </script>

以下是从控制器调用的方法:

public function get_hf_timeline_chart()
  {
    echo '{"key1": "value1","key2": "value2","key3": "value3","key4": "value4"}';
  }

我检查了控制台,我可以从控制器获取Json作为响应。状态代码为200。

有人可以帮我解决这个问题吗,我在这方面做了很多努力,但没有找到解决办法。谢谢

1 个答案:

答案 0 :(得分:0)

根据Jquery文档http://api.jquery.com/jQuery.ajax/#jqXHRjQuery.ajax是Promise,所以你可以在它上面使用回调。 在您的情况下,您可以更改为:

 $.ajax({
     type:       'POST',
     url:        '<?php echo base_url() ?>entities/get_hf_timeline_chart',
     data: {indicator_id:indicator, entity_id:entity_id, parent_id:parentid,quarter:$(".hf_performance_timeline_period.active").find("a").data("quarter"),year:$(".hf_performance_timeline_period.active").find("a").data("year"),data_type:datatype},
     dataType:   'json',
     beforeSend: function(rep){
        $('#entity_timeline_chart').html('<p class="well well-sm text-info"><i class="fa fa-exclamation-triangle fa-lg"></i>Loading...</p>');
     }
 }).done(function(data, textStatus, jqXHR){
     alert("success");
 });