Обратный вызов JQuery никогда не вызывался - PullRequest
1 голос
/ 08 июля 2011

У меня есть следующий фрагмент JS / JQuery:

 function add_item() {
   var item = $("input:text[name='new_item']").val();
   $.post("{{ url_for('add_item') }}",
       {'item' : item},
       function(data) {
         alert(':}');
       });
 }

Он выполняет простой AJAX-запрос к веб-серверу Flask и отображает окно с предупреждением об успешном завершении (данные всегда возвращают фрагмент JSON). Запрос AJAX добавляет поле в базу данных SQLite и возвращает. На моем устройстве dev этот запрос выполняется очень быстро с использованием асинхронных запросов. Однако на другом сервере этот запрос занимает несколько секунд (хотя и меньше, чем время ожидания по умолчанию) с использованием асинхронных запросов.

Проблема : Когда запрос занимает много времени для выполнения с использованием асинхронных запросов, обратный вызов никогда не вызывается. Когда я изменяю настройки AJAX на синхронные, всегда вызывается обратный вызов.

Спасибо!

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Я бы попробовал функцию $.ajax() над постом. Кажется, что он был более исправным - 1.6.2 также, похоже, имеет некоторые проблемы, поэтому попробуйте 1.6.1, если вам нужно: http://api.jquery.com/jQuery.ajax/

0 голосов
/ 09 июля 2011

Используйте метод error, чтобы узнать, какую ошибку вы получаете.

function add_item() {
   var item = $("input:text[name='new_item']").val();
   $.post("{{ url_for('add_item') }}",
       {'item' : item},
       function(data) {
         alert(':}');
       }).error(function(jqXHR, textStatus, errorThrown) { alert("error"); });
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...