Ajax-запрос успешно выполнен, но функция обратного вызова никогда не выполняется

Проблема, с которой я сталкиваюсь, заключается в том, что некоторые из моих запросов AJAX могут быть очень тяжелыми, в том смысле, что они выполняют много вычислений. В этом случае я могу зарегистрировать в своем коде сервера завершение процедуры (просто поместив некоторое отладочное сообщение в текстовый файл), однако в моем коде клиента я не могу выполнить функцию обратного вызова. Пример:

Ext.Ajax.request({
url:'computation.php', // it may take 5-10-20 or more seconds to complete
loadMask:true,
params:{...}, // some extra parameters
method:'POST',
success:function (result,request){
alert("Done!!!"); // If the procedure takes too long, I do not see this echo
}
});

Я думаю, корень проблемы может быть в значении результата, которое я должен вернуть со стороны сервера клиенту. Вероятно, должны быть некоторые необходимые аргументы (например, «успех»: «правда» — нужно ли мне это?) Или что-то еще.

1

Решение

У вас есть 3 способа узнать, в чем проблема:

1) Добавьте сбой: function () в ваш код extjs:

        Ext.Ajax.request({
url:UrlOfThePhpFile,
method:'POST',
params:{yourParamName:yourParamContent},
success:function(response){
console.log("Ajax call is a success")
debugger;
},
failure:function(response){
console.log("Ajax call failed")
debugger;
}
});

Откройте инструменты разработки в Chrome и благодаря «отладчику»; Вы можете изучить содержимое var «response». Это как точка останова в вашем коде.

2) Есть журнал ошибок для apache.
http://www.cyberciti.biz/faq/apache-logs/

3) С помощью IDE, такой как phpStorm, вы можете поместить некоторую точку останова в ваш файл php и посмотреть, вызван ли файл javascript

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector