Я следующее Аякса длинного опроса сценарияИспользование Ajax длинный опрос, чтобы обновить ответ на мою страницу из внешнего API
(function poll(){
$.ajax({ url: "<?php echo URL::to('/internal/v1/checkTxn'); ?>", success: function(data){
//Update your dashboard gauge
console.log(data.status); //Data is getting logged
if(data.status == 'success'){ //This condition is not being checked
console.log('suucesful'); //Not coming
}
}, dataType: "json", complete: poll, timeout: 1000 });
})();
бэкенд PHP код следующим образом
if(isset($_POST['status']) && $_POST['status']){
$data = ['status'=>$_POST['status']];
$json = json_encode($data);
echo $json;
}
Расход
При визуализации страницы выполняется сценарий ajax и ожидает ответа. Когда я проверил вкладку сети, ajax бесконечно делал запросы на указанный URL.
Я получаю сообщение формы с внешнего сайта на бэкэнд PHP, который мне нужно нажать на jquery.
Но когда сообщение происходит, в консоли ничего не регистрируется. Но если я буду жестко закодировать некоторые значения в $ json и повторить его, то он появится в консоли.
я столкнулся два вопроса
Когда запись происходит на PHP скрипт, его не придумывают в коде Ajax.
Когда я жесткий код (смоделировали ответ, отправленный внешней формы пост) в $ и JSON эхо его, его приход в консоли, но условие для data.status == «успех» не проверяется.
Что не так в этом. Я что-то упускаю?
UPDATE
I could fix the "condition not being checked" as there was something wrong the json being echoed. Now to avoid confusion, the flow for this User open the page, > The ajax starts the long polling process to my PHP code, waiting for a > response.User enters payment details in a form which is my html,clicks on pay, a pop up appears > which renders the banks login page (Payment gateway).After user entering all > details in the pop up (banks page), bank sents a server to server call about the status of > transaction to my notificationURL > ('mydomain.com/internal.v1/checkTxn'). As soon as I get a POST on this > URL(I will close the pop up), my ajax polling should get the data posted to my PHP and there by > I will show the status of TXN to the user on the same card form he entered his details earlier and > the pop window closes. The response here is returned by my PHP code to the ajax. The > post coming to my PHP code is a server to server post which is posted > by a Payment Gateway.
вы должны сделать JSON.parse (данные), чтобы преобразовать их в объект JS в AJAX на успех, потому что вы получите данные в формате JSON, и я предполагаю, что (функция() {...} (JQuery), вы должны pass jQuery как параметр для IIFE – CY5
Публикация с внешнего сайта может не сработать. Ajax обычно ограничен одним и тем же сайтом. – Brett
@Brett Нет, сообщения на сайте exnst в моем PHP-скрипте, а затем ajax вызывает скрипт php, который находится на моем сервере – Ajeesh