我正在尝试使用其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调用。