Як збільшити timeout у ajax в jquery

Щоб збільшити час очікування ajax запиту в jQuery потрібно використовувати параметр timeout. У цій невеликій запису я покажу як його правильно використовувати.

Для прикладу візьмемо код нижче:

Останній параметр (timeout) - це якраз те, що нам потрібно. Параметр приймає аргумент в форматі мілісекунд. Якщо ви хочете поставити 8 секунд, то вам потрібно написати 8000. У прикладі вище, ajax запит очікує відповіді протягом 3 секунд і якщо його немає, то error: function () буде викликана.

Як визначити timeout всередині error: function ()?

Для того, щоб зловити timeout помилку всередині error: function () потрібно прописати додаткові аргументи (дивіться нижче).

Рядки 3-9 - це те, що я змінив в коді. В даному випадку ми додали три аргументи для функції error: function () - x. t і e.

x означає jqXHR аргумент, який допомагає визначити якого типу сталася помилка під час запиту.

t означає textStatus аргумент, який відображає відповідь у вигляді текстового значення. На рядку 4, ми перевіряємо t == 'timeout' чи ні, якщо так, то це означає, що стався тайм-аут запиту. Даний аргумент може так само перевіряти на наступні значення: «timeout», «error», «abort», або «parsererror». Так само можливо, що вам просто поверне «null».

e означає errorThrown аргумент, який допомагає визначити HTTP помилки. Наприклад, якщо ви робили запит до файлу, а його немає, то має повернутися «Not Found" (не знайдено), тобто файлу не існує.

  • jQuery.ajax ()