Значение времени ожидания по умолчанию для jQuery ajax

У меня есть отчет об ошибке, который я не могу дублировать, но тайм-аут ajax-call - это лучшая догадка.

Итак, я пытаюсь узнать значение по умолчанию для тайм-аута вызова jQuery $.ajax(). У кого-нибудь есть идея? Не удалось найти его в документации jQuery.

Спасибо заранее, Маркус

Ответ 1

Кажется, что стандартное значение по умолчанию отсутствует. У меня такое ощущение, что значение по умолчанию 0, и событие тайм-аута осталось полностью зависящим от настроек браузера и сети.

Для IE существует свойство timeout для XMLHTTPRequests здесь. Он по умолчанию имеет значение null, и он говорит, что сетевой стек, вероятно, будет первым тайм-аутом (который, кстати, не будет генерировать событие ontimeout).

Ответ 2

Как ни в стороне, при попытке диагностировать подобную ошибку я понял, что обратный вызов jQuery ajax возвращает статус "тайм-аута", если он не удалось из-за таймаута.

Вот пример:

$.ajax({
    url: "/ajax_json_echo/",
    timeout: 500,
    error: function(jqXHR, textStatus, errorThrown) {
        alert(textStatus); // this will be "timeout"
    }
});

Здесь он находится на jsfiddle.

Ответ 3

по умолчанию не установлен тайм-аут.

Ответ 4

Свойство XMLHttpRequest.timeout представляет собой несколько миллисекунд, которые может потребоваться для запроса до автоматического завершения. Значение по умолчанию - 0, что означает, что время ожидания не равно. Важно отметить, что тайм-аут не должен использоваться для синхронных запросов XMLHttpRequests, используемых в среде документа, или он будет генерировать исключение InvalidAccessError. Вы не можете использовать таймаут для синхронных запросов с окном владеющего.

IE10 и 11 не поддерживают синхронные запросы, при этом поддержка также прекращается в других браузерах. Это связано с вредными эффектами в результате их создания.

Более подробную информацию можно найти здесь.