IE10/IE11 Abort Post Ajax-запрос после очистки кэша с ошибкой "Ошибка сети 0x2ef3"
SCRIPT7002: XMLHttpRequest: ошибка сети 0x2ef3, не удалось завершить операция из-за ошибки 00002ef3
В настоящий момент нет действительного решения.
Обновление: замечено также в IE11.
После все большего и большего количества исследований я пришел с такими результатами:
- Проблема специфична для моего приложения, это не происходит на facebook.
- Проблема не имеет ничего общего с максимальным количеством запросов на хост (я сделал примерную страницу, наводняющую сервер, IE10 способен обрабатывать до 8-10 запросов в то же время, внутри моего приложения, которое я также пытался сделать ajax запрашивает серийно, это также не удалось).
- Проблема связана с запросами POST.
- Проблема не специфична для используемой библиотеки JS (я попробовал прямое XMLHttpRequest с консоли, но также не удалось).
- Сбой произошел после того, как xhr.send(), xhr.readyState = 4 и xhr.onreadystatechange запущены.
- Сбой не связан ни с какими-либо типами содержимого, правильными запросами или конфигурацией сервера. Только клиент, запрашивающий фиктивную страницу, терпит неудачу, с минимальным XHR, просто xhr.open и xhr.send.
- Это произошло в основном после очистки кеша браузера.
- Выполнение запроса GET перед POST не решает эту проблему.
Мои вопросы:
- Как браузерный кеш может влиять на запросы POST ajax?
- Имеет ли какой-либо орган контакт с разработчиками IE, чтобы сообщить нам, к чему была связана эта ошибка "Ошибка сети 0x2ef3"?
В настоящее время временное решение, которое я выполняю, просто повторяет попытку максимум 3 раза, если код состояния HTTP был равен нулю. Но это очень уродливо, потому что иногда запросы на загрузку иногда не выполняются, и для этих запросов с повторением они становятся медленными, иногда это занимает дополнительные 100 мс.
Шаги для воспроизведения:
- Убедитесь, что скрипт или прокси отключены.
- http://ie10.laiths.name/#!login
- Откройте консоль IE10, удалите кеш браузера.
- Попробуйте этот недопустимый логин: [email protected]/random
- Через 3-4 раза (clear-cache/invalid-login) вы увидите эту ошибку: SCRIPT7002: XMLHttpRequest: ошибка сети 0x2ef3, не удалось завершить операцию из-за ошибки 00002ef3.
Моя версия IE:
- Версия Win7 IE10: 10.0.9200.16618
- Обновить версию: 10.0.6 (KB2838727)
На данный момент я решаю его, повторив максимум 3 раза, если browser is IE10
&& Request is POST
&& HTTP status code is 0
.
Я был бы признателен, если кто-нибудь может помочь мне удалить мое уродливое решение, потому что с таким решением, даже если запрос отправляется на сервер, и он возвращает 0, я также повторю попытку (я пытался избежать этого, измеряя время между xhr.send и его обратный вызов, но он не является надежным), а что, если IE10 в comptMode, а что, если IE11 будет иметь такую же проблему, добавьте к этой производительности, то он возьмет мою машину ~ 170ms между каждой попыткой.
Ответы
Ответ 1
Это может происходить из-за проблемы с сертификатом безопасности. Если вы очистите кеш, вы потеряете часть (если не все) информации о сертификате.
Дополнительную информацию (и обходной путь) можно найти в http://www.jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/
В основном это говорит о том, что вы должны выполнить GET перед запросом POST, чтобы обновить информацию о сертификате.
Ответ 2
У меня была эта проблема, запрос AJAX Post, который вернул некоторый JSON, потерпит неудачу, в конечном итоге возвратит прерывание с помощью:
SCRIPT7002: XMLHttpRequest: ошибка сети 0x2ef3
ошибка в консоли. В других браузерах (Chrome, Firefox, Safari) точно такой же запрос AJAX был в порядке.
Дальнейшее исследование показало, что в ответе отсутствовал код состояния - в этом случае это должно было быть 500 внутренних ошибок.
Это создавалось как часть веб-приложения С# с использованием стека служб, для которого явно должен быть установлен код ошибки.
IE, казалось, оставил соединение открытым, в конечном итоге сетевой слой закрыл его, и он "прервал" запрос; несмотря на получение содержимого и других заголовков.
Обновление веб-приложения для правильного возврата кода состояния устраняет проблему.
Возможно, есть проблема с тем, как IE обрабатывает заголовки в сообщениях.
Надеюсь, это поможет кому-то!
Ответ 3
У меня такая же проблема, и я стараюсь победить ее в течение недели, но теперь у меня нет результата, кроме одного дополнения к вам результатов, его исправления, если я добавляю сайт в зону интрасети, или другое решение, которое я открываю для настройки браузера, перейдите в раздел Безопасность чем нажмите "ОК", и запрос отправлен... такая же ошибка в IE 11
Ответ 4
Мы испытываем ту же проблему в IE 10 с помощью нашего мобильного инструмента для опроса "Опрос в любом месте"
Я опубликовал ответ на этот отчет об ошибке в Microsoft Connect. Если вы можете воспроизвести эту ошибку, укажите ее на сайте Microsoft Connect, чтобы ускорить разрешение.