AJAX调用在Codeigniter中不起作用,以及如何有条件地重新加载页面/重新启动Ajax

时间:2019-01-08 11:57:45

标签: javascript jquery json ajax codeigniter

我正在尝试使用其API检查与某些远程服务器的交易状态。我想要的是作为ajax调用的结果,如果我从contoller收到1或4作为响应,则应重新加载当前页面/视图,并且应停止触发ajax,否则应在每次执行后重新触发相同的ajax 5秒钟,直到我得到来自控制器的1或4的响应。

  

注意:值1和4是从模型函数返回的   名为 fetchdetails 的控制器函数。

以下是我的Controller功能代码:

$data["pdstat"]=$this->public_m->fetchdetails($paymentid);
echo json_encode(array('resp'=>$data["pdstat"]));

以下是我视图中的代码:

echo "<div class='alert alert-primary'>Please wait. Verification under process.</div>";
echo "<script type='text/javascript'>
    var recall = function(event) {
            $.ajax({
                    type: 'post',
                        url: '".base_url()."PDetails/".$this->session->payment_id."',
                        dataType: 'json',
                        success: function(res){
                        if(res) {
                            var rcode=0;
                            var len=res.length;
                            for(var i=0; i<len; i++)
                            {
                                rcode=res[i]['resp'];
                            }
                            if(rcode=='1' || rcode=='4')
                            {
                                console.log('reloading');
                                window.location = window.location.href;
                            }
                            else if(rcode=='3' || rcode=='5')
                            {
                                console.log('recalling');
                                recall();
                            }
                        }
                        else
                        {
                            console.log('recalling');
                        recall();
                        }
                        },
                        error: function(res, status, error) {
                            var err = res.responseText;
                            console.log(res.Message);
                            console.log(status);
                            console.log(error);
                            console.log('recalling');
                               recall();
                        }
                    });
        };
    recall();
  </script>";

我已经检查了页面并检查了控制台和网络选项卡。根本没有启动ajax调用。

0 个答案:

没有答案