我有一个不调用成功方法的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。
有人可以帮我解决这个问题吗,我在这方面做了很多努力,但没有找到解决办法。谢谢
答案 0 :(得分:0)
根据Jquery文档http://api.jquery.com/jQuery.ajax/#jqXHR。 jQuery.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");
});