Я пытаюсь проверить состояние транзакции с некоторым удаленным сервером, используя их API. Я хочу, чтобы в результате моего вызова ajax, если я получил 1 или 4 в качестве ответа от контроллера, текущая страница / представление должны быть перезагружены, и ajax должен прекратить запуск, в противном случае тот же самый ajax должен запускаться повторно после каждого 5 секунд, пока я не получу 1 или 4 в ответ от контроллера.
Примечание: значения 1 и 4 возвращаются из функции модели
имя fetchdetails для функции контроллера.
Ниже приведен код функции моего контроллера:
$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 вообще не был инициирован.