jquery: ajaxError всегда срабатывает последним - PullRequest
0 голосов
/ 27 февраля 2009

Я создаю страницу, которая может получить БОЛЬШУЮ сумму html от вызова ajax, который затем вставляется на страницу. Иногда вместо HTML, который я ожидаю, я получаю ошибку http 401. В идеале я хочу сначала запустить обработчик ошибок, чтобы я мог установить флаг ошибки, отобразить сообщение и НЕ вставить HTML, который приходит.

Проблема, с которой я столкнулся, заключается в том, что обработчик ошибок запускает LAST , и поэтому я уже вставил html, который содержит неиспользуемые теги сценария, и он взрывается.

также я заметил, что ajaxError срабатывает после обработчика «complete», который дует.

Ответы [ 3 ]

4 голосов
/ 27 февраля 2009

Вы должны использовать обработчик success вместо complete для обновления html, потому что он будет запущен, только если сервер отправит 200.

0 голосов
/ 27 февраля 2009

Пара мыслей:

  • Настройте функцию обратного вызова ajax так, что он проверяет содержание возвращаемая строка, чтобы убедиться, что это действительный. Не вставляйте его, если это не то, что вы ожидаете.

  • Ваш обработчик ошибок ajax не должен выполнять обратный вызов (т. Е. Вставлять HTML) и выполнять код обработки ошибок. Вы можете иметь ошибку в другом месте, если это происходит.

  • При необходимости вы можете посмотреть на настройку тайм-аута.
0 голосов
/ 27 февраля 2009

Если вы используете метод GET instace POST в вызове ajax, проблема заключается в ограничении числа символов, которые вы можете получить.

Одним из решений может быть то, что предварительно сохранить содержимое во временном формате xml o и взять содержимое после вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...