Ошибка IE10/11 Ajax XHR - СЦЕНАРИЙ 7002: XMLHttpRequest: Сетевая ошибка 0x2ef3


Я работаю над этой проблемой в течение нескольких дней и обращаюсь на этот форум, так как чувствую, что исчерпал свои возможности. У меня есть форма, размещенная на веб-сайте Drupal 7, и мне нужно отправить значения формы на внешний URL-адрес. Форма использует запрос POST по протоколу HTTPS через jQuery.АЯКС

  • Форма отлично работает в Chrome, Firefox и Safari
  • Я получаю следующую ошибку в консоли IE10+ (и вызов ajax всегда переходит в функцию ошибки, когда используя IE10+):

СЦЕНАРИЙ 7002: XMLHttpRequest: Сетевая ошибка 0x2ef3, Не удалось завершить операцию из-за ошибки 00002ef3

Я пробовал следующее:

  • Добавление типа содержимого:

    // causes all of the jQuery callbacks to error out
    "application/json; charset=utf-8",
    
  • Попытка вызова Ajax GET перед фактической публикацией (как предложено в другом потоке SO)

  • Добавлено header( 'Content-Type: application/json; charset=utf-8' ); в запрос

  • Набор crossDomain: true

Были добавлены соответствующие заголовки CORS и код формы вставлен ниже:

$.ajax({
    url: "[URL]", //the page to receive the form data  
    crossDomain: true,
    type: "POST",
    data: dataString, //posting to API 
    dataType: "json", //the data type the function should expect back from the server     
    success: function(data) {         
        if (data.response_status == "1") { //error for at least 1 field
             //display error message 
             }
             else { 
             //display thank you label next to input
             }

        } else {
           //All form fields completed successfully! Redirect user to Thank you confirmation page            
        } 
     },
    error: function(jqXHR, textStatus, errorThrown) {
             alert("there is an error!");
             console.log("in error section");
             console.log("jqXHR: " + jqXHR);
             console.log("jqXHR.responseText: " + jqXHR.responseText);
             console.log("textStatus: " + textStatus);
             console.log("errorThrown: " + errorThrown);
             data = $.parseJSON(jqXHR.responseText);
             console.log("parseJSON data: " + data);                           
    }        
    });         
  });
});

Я читал СЦЕНАРИЙ 7002: XMLHttpRequest: Сетевая ошибка 0x2ef3, Не удалось завершить операцию из-за ошибки 00002ef3

Любое руководство было бы полезно! СПАСИБО

Author: Community, 2014-04-18

10 answers

OP предоставил запись WireShark, показывающую, что сервер запросил сертификат, используя сообщение HTTPS CertificateRequest, а затем клиент немедленно FIN установил соединение.

После настройки сервера так, чтобы он не запрашивал сертификат клиента, проблема исчезла.

Использование Fiddler также устранит проблему, потому что, если вы не настроите его таким образом, Fiddler никогда не запросит сертификат клиента из браузера.

Мне интересно, только ли затронутые клиентский компьютер имел соответствующий сертификат и/или имеет ли значение флаг withCredentials в запросе CORS XHR в этом сценарии.

 11
Author: EricLaw, 2014-04-23 18:52:40

Я случайно увидел эту ошибку в IE 8+9+10+11 Звонит Аякс. Во всех остальных браузерах этой проблемы не было.

Предположим, что между поддерживаемыми связями существовало условие гонки. Я использую Apache 2.4.7.

С настройками Apache 2 по умолчанию в /etc/apache2/apache2.conf Я смог воспроизвести ошибку примерно в каждом десятом вызове Ajax:

KeepAlive On
KeepAliveTimeout 5

Решение: Либо установка

KeepAlive off

Или

KeepAliveTimeout 1

Решил проблему за меня. Я рекомендую любой, кто испытывает 0x2ef3-сетевую ошибку , чтобы сначала установить , отключите поддержку на сервере. Если ошибка исчезла, включите ее снова и протестируйте со значениями KeepAliveTimeout. Они также могут быть установлены на ms.

Существует также способ отключить поддержку только для Internet Explorer.

 9
Author: alfonx, 2015-11-06 19:19:46

В своей среде я сначала скопировал/вставил несколько старых кодов, чтобы использовать их. Таким образом, "contentType" было "application/json".

Когда я узнал, что IE11 через Windows 8 не работает с очень высокой вероятностью, если я нажал кнопку "Отправить" с помощью мыши. Но я также выяснил, что если я нажму клавишу ввода на клавиатуре, то она отлично работает с IE11.

Обратите внимание, что мои элементы input и submit button были вложены в элемент form.

Поборовшись некоторое время, я пришел к эта страница, но не решила мою проблему, потому что я ничего не знал о бэкенд-технологиях. Я был просто передовым парнем с ограниченными знаниями.

Затем я перепробовал множество модификаций одну за другой. Внезапно официальные документы API jQuery вдохновили меня. Я прокомментировал параметр "contentType" так, чтобы "contentType" принимало значение по умолчанию, которое равно "application/x-www-form-urlencoded; charset=UTF-8". Тогда проблема решена.

Надеюсь, это поможет.

 6
Author: wu le-chuan, 2015-04-16 06:27:04

Я столкнулся с той же проблемой. Для меня проблема, казалось, возникала только в IE11 при почтовом вызове, я использовал провайдера AngularJS $http для совершения вызова. Похоже, что это ошибка в IE, и это проблема с сертификатом. Информация о сертификате безопасности не загружается должным образом при выполнении последующего вызова. В качестве обходного пути, прежде чем совершать вызов POST, выполните вызов GET, чтобы правильно загрузить сертификат. Взгляните на приведенный ниже пример кода (он использует AngularJS)

$http({
    method: "GET",
    url: "/api/DummyGet"
}).success(
$http({
        method: "POST",
        url: "/api/PostCall",
        data: data
})
);

Для получения дополнительной информации вы можете ознакомиться с этими двумя ссылками - http://jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/
-IE10/IE11 Прервать запрос Ajax После очистки кэша с ошибкой "Сетевая ошибка 0x2ef3"

 5
Author: Pratik Bhattacharya, 2015-08-19 22:24:45

У меня была похожая ситуация, и после долгих исследований проблема была другой, но я хочу опубликовать ее здесь в надежде, что кто-то может найти ее полезной в поисках той же ошибки:

У Apache было время ожидания соединения 5 секунд. Internet Explorer 11 на Win 7, казалось, игнорировал тот факт, что больше не было активного сеанса, предполагая, что это будет 60 секунд. После изменения настроек Apache на тайм-аут в 60 секунд моя проблема была решена.

 2
Author: kimyas78, 2014-11-28 11:12:42

У меня была эта проблема с приложением IIS, запрос AJAX Post, который возвращал некоторый JSON, завершался ошибкой, в конечном итоге возвращая прерывание, с помощью:

СЦЕНАРИЙ 7002: XMLHttpRequest: Сетевая ошибка 0x2ef3

Ошибка в консоли. В других браузерах (Chrome, Firefox, Safari) точно такой же запрос AJAX был в порядке.

Дальнейшее расследование показало, что в ответе сервера отсутствовал код состояния - в этом случае он должен был быть 500 внутренним ошибка.

Это создавалось как часть веб-приложения на C# с использованием стека служб, для которого требуется явная установка кода ошибки.

IE, казалось, оставил соединение открытым, в конце концов сетевой уровень закрыл его, и он "прервал" запрос; несмотря на получение содержимого и других заголовков.

Обновление веб-приложения для правильного возврата кода состояния устранило проблему.

Возможно, существует проблема с тем, как IE обрабатывает заголовки в сообщений.

Надеюсь, это кому-то поможет!

 2
Author: Andrew Keeling, 2015-09-22 01:23:31

У меня была такая же ошибка в ASP.NET MVC и, наконец, смог обойти это. Я создавал пару сотен встроенных форм на странице, каждая из которых имела @Html.AntiForgeryToken(). Я считаю, что это приводит к созданию файла cookie на стороне клиента. Потенциально IE не хватало места для файлов cookie (или что-то в этом роде, кто знает, с IE). Удалил его, и моя проблема исчезла.

 1
Author: Ron, 2014-05-01 15:14:05

Ну, я получил ту же ошибку в IE 11. Пытаясь описать, что было причиной этого, как можно короче.

  • отображение сайта как http
  • сайт выполняет вызов ajax по протоколу https
  • ssl был самозаверяющим, но браузер еще не сделал для него исключения.
  • После создания исключения сертификата все работает нормально.

Надеюсь, это кому-то поможет.

 1
Author: Trixor, 2016-02-23 03:17:23

Мы наблюдали ту же ошибку в IE11 и Edge. AJAX-запрос jQuery последовательно выдавал ошибку XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3. ровно через 300 секунд. (Chrome и Firefox были в порядке)

Оказалось таймаутом простоя , установленным в нашем балансировщике нагрузки (в нашем случае F5). Нам удалось диагностировать проблему с помощью Fiddler, что привело к более полезному сообщению об ошибке в браузере: Failed to load resource: the server responded with a status of 504 (Fiddler - Receive Failure) Обратите внимание, что при запуске Fiddler мы видели эту ошибку (через 300 секунд) во всех браузерах, включая Chrome и Firefox.

 1
Author: herdistheword, 2017-01-27 11:57:12

Просто хочу высказать свое мнение о том, что было основной причиной этой проблемы для меня.

У нас есть приложение Angular2, которое вызывает наш api REST NodeJS. Затем API rest вызывает другую службу (я полагаю, SOAP).

Мы обнаружили, что наш сервис SOAP не имел конечной точки (?) только в одной среде (работал везде). Когда api NodeJS вызывал службу SOAP, служба soap возвращала сообщение об ошибке "X не является функцией". Когда ответ на ошибку был возвращенный в NodeJS, он не имел надлежащей обработки ошибок/исключений, поэтому он полностью уничтожал службу. Таким образом, пользовательский интерфейс не получал ответа.

 0
Author: ganders, 2017-05-25 13:54:16