Значение времени ожидания по умолчанию для 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 не поддерживают синхронные запросы, при этом поддержка также прекращается в других браузерах. Это связано с вредными эффектами в результате их создания.
Более подробную информацию можно найти здесь.