Что означает "XMLHttpRequest.timeout не может быть установлен для синхронных запросов http(s), сделанных из контекста окна"?

Я получаю некоторые тайм-ауты на синхронный запрос http в Safari на Mac. В качестве обходного пути я попытался добавить время ожидания следующим образом:

    req.open(this.method, fullURL, this.isAsync);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    var params = this.envelopeForm();
    req.setRequestHeader("Content-length", params.length);
    req.timeout = 60000;  //Get the timeut cannot be set here
    req.send(params);  //Without the above, get a timeout here in Safari

С.timeout = 60000 я получаю тайм-аут на.send.

С.timeout = 60000 я получаю "XMLHttpRequest.timeout не может быть установлен для синхронных запросов http(s), сделанных из контекста окна".

Мне не ясно, что означает "XMLHttpRequest.timeout не может быть установлен для синхронных запросов http(s) из контекста окна". Я также нашел это в документации Mozilla, сформулированной так:

Примечание. Вы не можете использовать тайм-аут для синхронных запросов с окном-владельцем.

Есть ли обходной путь для этого? На сайте MSDN я нашел следующее утверждение относительно Internet Explorer:

Если вы установите значение времени ожидания XMLHttpRequest, превышающее значение времени ожидания сетевого стека, то для сетевого стека сначала будет время ожидания, а событие ontimeout не будет вызвано

-Эрик

1 ответ

timeout с синхронными запросами AJAX могут использоваться только от веб-работников

Другие вопросы по тегам