Подтвердить что ты не робот

SCRIPT7002: XMLHttpRequest: ошибка сети 0x2ef3, не удалось завершить операцию из-за ошибки 00002ef3

Я продолжаю получать эту ошибку, когда выполняю некоторые вызовы Ajax...

Это может быть даже связано с Geocoding, но я действительно не знаю, как захватить ошибку, чтобы отобразить что-то полезное для пользователей... или даже как решить проблему, поскольку, похоже, это просто ссылка на какой-то указатель или что-то: S 0x2ef3

SCRIPT7002: XMLHttpRequest: ошибка сети 0x2ef3, не удалось завершить операцию из-за ошибки 00002ef3.

Изображение может быть более полезным, чем сообщение об ошибке:

enter image description here

Любые идеи вообще?

Мой код запускает 10 вызовов ajax за 1 секунду, которые будут обрабатываться на стороне сервера геокодирования.

Ошибка возникает с перерывами. Иногда я получаю геокодированные результаты, и иногда я получаю эту ошибку. Я бы сказал, что получаю его в 10% случаев. Он полностью останавливает вызов ajax от запуска моего обработчика ошибок в jQuery.

4b9b3361

Ответ 1

Это исправление, которое сработало для меня. Существует неверный mime или bad characterset, который отправляется с вашими json-данными, вызывающими это сообщение. Добавьте такую ​​кодировку, чтобы она не путалась:

$.ajax({
  url:url,
  type:"POST",
  data:data,
  contentType:"application/json; charset=utf-8",
  dataType:"json",
  success: function(){
  ...
  }
});

Ссылка:

JQuery - как сделать $.post() использовать contentType = application/json?

Не удалось выполнить операцию из-за ошибки c00ce56e

Ответ 2

Мы также сталкивались с аналогичными проблемами. Однако установка кодировки, как указано в предыдущем комментарии, не помогла. Наше приложение выполняло запрос AJAX каждые 60 секунд, и наш веб-сервер nginx отправлял тайм-аут Keep-Alive на 60 секунд.

Мы исправили проблему, установив значение тайм-аута keep-alive на 75 секунд.

Это то, что, по нашему мнению, происходит:

  • IE делает запрос AJAX каждые 60 секунд, устанавливая Keep-Alive в запросе.
  • В то же время nginx знает, что значение тайм-аута Keep-Alive игнорируется IE, поэтому он запускает процесс закрытия TCP-соединения (в случае FF/Chrome это запускается клиентом).
  • IE получает запрос на закрытие соединения для ранее отправленного запроса. Поскольку IE не ожидает этого, он выдает ошибку и прерывается.
  • nginx все еще, кажется, отвечает на запрос, даже если соединение закрыто.

Дамп Wireshark TCP даст больше ясности, наша проблема исправлена, и мы не хотим тратить на нее больше времени.

Ответ 3

Я получил ту же ошибку (SCRIPT7002: XMLHttpRequest: Network Error 0x80004004, Operation aborted), в нашем случае это было из-за той же политики происхождения JavaScript.

Наше веб-приложение делало вызов JQuery AJAX нашему серверу на порту 8080. Звонок перехватывался и перенаправлялся через SSL (из-за правил сервера, в соответствии с которыми входящий трафик использует SSL).

Как только мы сделали загрузку веб-приложения через порт SSL, проблема была исправлена.

Ответ 4

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

SCRIPT7002: XMLHttpRequest: ошибка сети 0x2ef3

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

Отслеживание моей проблемы - исследование показало, что в ответе отсутствовал код состояния. В этом случае это должно было быть 500 внутренних ошибок. Это создавалось как часть веб-приложения С# с использованием стека служб, для которого явно должен быть установлен код ошибки.

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

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

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

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

Ответ 5

Эта проблема произошла в моем проекте из-за вызова GET ajax с длинной строкой xml в качестве значения параметра. Решенный следующим образом: Сделать это как ajax-сообщение для вызова класса Java класса Spring класса MVC, подобного этому.

$.ajax({
    url: "controller_Method_Name.html?variable_name="+variable_value,
    type: "POST",
    data:{ 
            "xmlMetaData": xmlMetaData // This variable contains a long xml string
    },
    success: function(response)
    {
        console.log(response);
    }
  });

Внутри Spring Метод класса MVC Controller:

@RequestMapping(value="/controller_Method_Name")
  public void controller_Method_Name(@RequestParam("xmlMetaData") String metaDataXML, HttpServletRequest request)
{
   System.out.println(metaDataXML);
}

Ответ 6

У меня была эта ошибка в течение некоторого времени и найдено исправление. Это исправление для приложения Asp.net, Strange не удалось только в режиме несовместимости IE, но работает в Firefox и Crome. Предоставление доступа к папке службы webservice для всех/конкретных пользователей решило проблему.

Добавьте следующий код в файл web.config:

 <location path="YourWebserviceFolder">
  <system.web>
   <authorization>
    <allow users="*"/>
   </authorization>
  </system.web>
 </location>

Ответ 7

Я наткнулся на эти вопросы и ответы после получения вышеупомянутой ошибки в IE11 при попытке загрузить файлы с помощью XMLHttpRequest:

var reqObj = new XMLHttpRequest();

//event Handler
reqObj.upload.addEventListener("progress", uploadProgress, false);
reqObj.addEventListener("load", uploadComplete, false);
reqObj.addEventListener("error", uploadFailed, false);
reqObj.addEventListener("abort", uploadCanceled, false);

//open the object and set method of call (post), url to call, isAsynchronous(true)
reqObj.open("POST", $rootUrlService.rootUrl + "Controller/UploadFiles", true);

//set Content-Type at request header.for file upload it value must be multipart/form-data
reqObj.setRequestHeader("Content-Type", "multipart/form-data");

//Set header properties : file name and project milestone id
reqObj.setRequestHeader('X-File-Name', name);

// send the file
// this is the line where the error occurs
reqObj.send(fileToUpload);

Удаление строки reqObj.setRequestHeader("Content-Type", "multipart/form-data"); устраняет проблему.

Примечание. эта ошибка показана в других браузерах по-разному. То есть Chrome показывает что-то похожее на соединение reset, которое похоже на то, что сообщает Fiddler (пустой ответ из-за внезапного закрытия соединения).

Кроме того, эта ошибка появилась только тогда, когда загрузка выполнялась с машины, отличной от WebServer (без проблем на localhost).

Ответ 8

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

Вызовы ajax, вызывающие проблему, пытались передать пустой объект данных. Кажется, IE это не нравится, но другие браузеры не против.

Чтобы исправить это, я просто удалил data: {}, из вызова ajax.

Ответ 9

С изменением Apache 2 KeepAliveTimeout установите значение 60 или выше

Ответ 10

Повышение директивы в virtualhost для KeepAliveTimeout до 60 решило это для меня.

Ответ 11

У меня возникла такая же проблема в моем проекте asp.net, в конце я обнаружил, что проблема связана с целевой функцией не статической, проблема исправлена ​​после того, как я поставил ключевое слово static.

[WebMethod]
public static List<string> getRawData()

Ответ 12

[Решено]

Я только наблюдал эту ошибку сегодня, для меня Код ошибки был другим, хотя.

SCRIPT7002: XMLHttpRequest: Сетевая ошибка 0x2efd, не удалось завершить операцию из-за ошибки 00002efd.

Это происходило случайно и не всегда. но то, что он заметил, это если он поступит для последующих вызовов AJAX. поэтому я поместил некоторую задержку в 5 секунд между вызовами AJAX, и она разрешилась.

Ответ 13

Если ни одно из этих решений не было достаточно "ясным", по сути, IE/Edge не может правильно проанализировать поле "данных" вашего вызова AJAX. Скорее всего, вы отправляете "закодированный" объект JSON.

Что не удалось: "data": "{\"Key\":\"Value\"}",

Что работает: "data":'{"Key":"Value"}'