Что это значит, когда HTTP-запрос возвращает код состояния 0?
Что это означает, когда вызовы сети Java, такие как fetch или XMLHttpRequest или любой другой тип HTTP-запроса сети, терпят неудачу с кодом состояния HTTP 0?
Это, похоже, не является допустимым кодом статуса HTTP, так как другие коды имеют три цифры в спецификации HTTP.
Я попытался отключить сеть полностью как тест. Он может быть несвязан, но это привело к статусу кода 17003 (IIRC), который предлагает быстрый поиск, означает, что поиск DNS-сервера не удался.
Тот же код отлично работает в некоторых местах и системах, однако в определенных средах он не работает с кодом состояния 0, и нет ответа.
Это типичный HTTP POST для интернет-URL. Это не связано с файлом://, который, как я понимаю, может вернуть 0, указывая на успех в Firefox.
13 ответов
Я считаю, что код ошибки указывает на то, что ответ был пуст (поскольку даже не возвращены заголовки). Это означает, что соединение было принято, а затем закрыто изящно (TCP FIN). Есть несколько вещей, которые могут привести к этому, но, основываясь на вашем описании, наиболее вероятным виновником кажется какая-то брандмауэр.
Многие из ответов здесь неправильные. Кажется, люди выясняют, что вызывало статус == 0 в их конкретном случае, а затем обобщили это как ответ.
Практически говоря, статус == 0 для неудавшегося XmlHttpRequest следует считать ошибкой undefined.
Фактическая спецификация W3C определяет условия, для которых здесь возвращается ноль: https://fetch.spec.whatwg.org/#concept-network-error
Как вы можете видеть из spec (fetch или XmlHttpRequest), этот код может быть результатом ошибки, которая произошла еще до того, как сервер связывается.
Некоторые общие ситуации, которые производят этот код состояния, отражаются в других ответах, но это может быть любая или никакая из этих проблем:
- Запрос на незаконный перекрестный поиск (см. CORS)
- Брандмауэр-блок или фильтрация
- Сам запрос был отменен в коде
- Устанавливаемое расширение браузера не работает.
Что было бы полезно, чтобы браузеры предоставляли подробные отчеты об ошибках для более этих сценариев состояния == 0. Действительно, иногда статус == 0 будет сопровождать полезное консольное сообщение, но в других нет другой информации.
Для чего стоит, в зависимости от браузера, вызовы AJAX на основе jQuery вызовут ваш обратный вызов успеха с кодом состояния HTTP из 0. Мы обнаружили, что код состояния «0» обычно означает, что пользователь перешел на на другой странице перед завершением вызова AJAX.
Не тот же самый стек технологий, который вы используете, но, надеюсь, полезен кому-то.
wininet.dll возвращает как стандартные, так и нестандартные коды состояния, которые перечислены ниже.
Для кода состояния «ноль» вы пытаетесь выполнить запрос на локальной веб-странице, запущенной на веб-сервере или без веб-сервера?
Состояние XMLHttpRequest = 0 и статус XMLHttpRequestText = неизвестно может помочь вам, если вы не используете свой script на веб-сервере.
Обходное решение: что мы закончили делать
Мы решили, что это связано с проблемами брандмауэра, и поэтому мы придумали обходной путь, который сделал трюк. Если у кого-то такая же проблема, вот что мы сделали:
Мы все еще записываем данные в текстовый файл на локальном жестком диске, как мы это делали ранее, используя HTA.
Когда пользователь нажимает «отправить данные обратно на сервер», HTA считывает данные и выписывает HTML-страницу, которая включает эти данные в виде острова данных XML (фактически используя SCRIPT LANGUAGE = XML SCRIPT).
HTA запускает ссылку на HTML-страницу в браузере.
Страница HTML теперь содержит javascript, который отправляет данные на сервер (используя Microsoft.XMLHTTP).
Надеюсь, это поможет любому, у кого есть аналогичное требование. В этом случае это была флеш-игра, используемая на ноутбуке на выставках. У нас никогда не было доступа к ноутбуку и он мог отправлять его клиенту только по электронной почте, поскольку эта выставка происходила в другой стране.
Код ответа HTTP 0 указывает, что запрос AJAX был отменен.
Это может произойти либо от тайм-аута, либо от прерывания XHR, либо от брандмауэра, топающего по запросу. Тайм-аут является общим, это означает, что запрос не выполнен в течение указанного времени. Аборт XHR очень прост в использовании. вы можете фактически вызвать .abort() в объекте XMLHttpRequest, чтобы отменить вызов AJAX. (Это хорошая практика для одностраничного приложения, если вы не хотите, чтобы AJAX-вызовы возвращались и пытались ссылаться на объекты, которые были уничтожены.) Как упоминалось в отмеченном ответе, брандмауэр также мог бы отменить запрос и запустить его 0.
Стоит отметить, что запуск метода .abort() объекта XHR также приведет к обратному вызову ошибки. Если вы выполняете какую-либо обработку ошибок, которая анализирует эти объекты, вы быстро заметите, что прерванный XHR и XHR с тайм-аутом идентичны, но с jQuery textStatus, который передается в обратный вызов ошибки, будет «отменен» при прерванном и «таймаут» с таймаутом. Если вы используете Zepto (очень похожий на jQuery), errorType будет «ошибкой» при прерывании и «таймаутом», когда произойдет таймаут.
Как указано в этом ответе на этой странице, код состояния 0 означает, что запрос по какой-то причине был неудачным, а библиотека javascript интерпретировала ошибку как код состояния 0.
Чтобы проверить это, вы можете выполнить одно из следующих действий:
1) Используйте это расширение chrome, Requestly для перенаправления вашего url из https версии вашего URL- адреса в http версию, так как это приведет к ошибке смешанного содержимого и в конечном итоге сгенерирует код состояния 0. Преимущество этого подхода заключается в том, что вам вообще не нужно менять приложение, и вы можете просто «переписать» свой url, используя это расширение.
2) Измените код своего приложения, чтобы, при необходимости, сделать свою конечную точку перенаправлением на http версию вашего URL вместо версии https (или наоборот). Если вы это сделаете, запрос завершится с кодом состояния 0.
Триколор код ошибки 0
Сегодня возможно достаточно часто слышать о случаях, когда без видимой на то причины посреди экрана телевизора выходит информация об ошибках или сбоях. Подобное возникает и у крупнейшего телевизионного провайдера Триколор. Код ошибки 0 встречается практически у каждого пользователя, и на это есть причины. Весь список ошибок приемника вы можете увидеть на соответствующей странице.

Давайте разберемся в сути проблемы и рассмотрим причины ее возникновения и способы устранения.
Что значит код ошибки 0 Триколор
В Триколор ТВ код ошибки 0 обозначает потерю доступа к телевизионным каналом и невозможности их раскодировки. Чаще всего она возникает из-за появления неполадок в программном обеспечении приемника, ухудшении качества сигнала, перепадов напряжения в электрической сети, и так далее.
Обратите внимание! Вне зависимости от причин ее возникновения доступ к телевизионным каналам просто так не вернуть. В случае возникновения нулевой ошибки не работает даже нулевой информационный канал.
Как ошибка 0 отображается на телевизоре
Когда телевизионные каналы на Триколор не показывают и появляется код ошибки 0, то на экране телевизора отображается следующее изображение:

Причины и методы устранения ошибки 0
| Причина возникновения | Способы устранения |
| Перегрев телевизионного приемника | Перезагрузить ресивер, вынув шнур питания из розетки. Перед тем, как снова подключить его к электросети, нужно будет подождать 5 минут. Впоследствии после полной перезагрузки понадобится переключиться на любой платный канал.Если именно системный сбой был причиной потери сигнала, тогда после перезагрузки вещание будет полностью восстановлено. |
| Окончание срока действительности платной подписки на каналы, или же уплата ежемесячной абонентской платы | Прежде чем прибегать к крайним методам стоит проверить, была ли внесена оплата за ежемесячную подписку. При этом бывает, что процесс оплаты был произведен неправильно.Проверить активацию подписки возможно на сайте tricolor.tv в разделе персонального кабинета, или же в разделе проверки подписок на главной странице.Если не имеется доступа к сети Интернет, достаточно будет просто позвонить по единому номеру справочной службы Триколор ТВ – 8 800 500 01 23 |
| Возникновение сбоев в программном обеспечении или сброс активационных ключей в телевизионном ресивере | Если ресивер более 5 дней не включался в программе может произойти сбой. Для решения проблемы надо повторно запросить команду активации в меню приемника, персональном кабинете на официальном сайте телевизионного провайдера, позвонить в справочную или дилеру. |
| Неправильная установка или же отсутствие смарт карточки | Для проверки активности смарт карточки необходимо зайти в параметры ресивера нажатием на кнопку «STATUS», «№ ID» или «ТриколорТВ» (в зависимости от конкретной модели пульта управления). В дальнейшем на экране телевизора должен высветится 12 или 14-значный код.Если этого не произошло, значит карта действительно была вставлена неправильно, а именно вставлена не до конца, или не той стороной.В телевизионных приемниках моделей u510, u210, e212 карточка вставляется чипом кверху, в остальных ресиверах – чипом вниз. Не все модели снабжаются слотом для смарт-карты – новейшие модели работают за счет ее внутреннего интегрирования. Однако, в статусе приемника в любом случае должен отображаться ее номер. |
| Невозможность обработки сигнала из-за неправильной установки приемной антенны, низкого качества сигнала или плохих погодных условий | Наиболее распространенная причина возникновения в Триколор кода ошибки 0. Что это значит – сигнал со спутника передается недостаточно хорошо, или же вовсе не улавливается. Бывает и неправильная установка спутниковой тарелки, попадание на нее мусора и листьев, повреждение кабеля, неблагоприятные погодные условия, и так далее.Нужно проверить состояние сигнала, нажав на пульте последовательно красную и синюю кнопку. Впоследствии высветятся две шкалы, показывающие силу и качество приема сигнала. Обычно они должны быть заполнены более чем на половину.Если же с погодой все в порядке, необходимо правильно установить антенну. |
| Незапланированный перерыв в процессе обновления или устаревшая версия программного обеспечения | Нужно произвести поиск и установку обновленного программного обеспечения. Если проблема не исчезнет, значит причина заключается не в обновлениях. |
| Покупка телевизионного пакета «Единый» | Встречается часто при подключении тарифа «Единый». Решить проблему можно простой активацией другого пакета, или позвонив в справочную службу. |
Ошибка 0 на разных моделях приемника
- 8300;
- 8300N;
- 8300M;
- 8302;
- 8304.
- 6301;
- 8305;
- 8306;
- 8307;
- 8308;
- 9303;
- 9305.
- В210;
- В211;
- В212;
- Е212;
- E501;
- U210;
- U210Ci;
- U510.
- A230;
- В520;
- В521;
- E521L;
- В522;
- В531;
- B5310;
- B5311;
- В532;
- В533;
- В534.
Заключение
Чтобы среди всех возможных кодов ошибок на Триколор ТВ ошибка 0 не появлялась на экране вашего телевизора, в дальнейшем советуем не выключать надолго приемник, вовремя обновлять ПО и вносить абонентскую плату.
«Ошибка 0» – при отправке СМС в Теле2: что это значит?
Очень часто у пользователей, выполняющих операции в Сети, особенно в момент отправки СМС, появляются извещения о различных погрешностях и отклонениях в работе системы. Как правило, при выявлении несоответствий, система отправляет код ошибки. Это позволяет быстро найти причину проблемы и все легко исправить.
Абонентов сотового оператора связи Теле2 в тот момент, когда они работают на страницах сервиса или приложения, отправляя СМС, нередко поджидают самые разные проблемы в личном кабинете. В подобных ситуациях человек наблюдает, как на экране его гаджета высвечивается информация о том, что в момент осуществления операции отправки СМС в системе возникло отклонение. Одновременно от системы поступает код этой ошибки — 0. 
Далее эта статья содержит подробную информацию о том, что собой представляет сообщение о допущенном дефекте. Читатель узнает, в результате каких явлений возникает это сообщение. Здесь будет рассказано о том, что означает данная погрешность при попытке пользователя отправить СМС в сети Теле2: вследствие чего она возникает, и способы ее ликвидации.
Значение ошибки 0
Провайдеры сотовой связи с самого своего основания учредили определенные правила, используя которые, легко идентифицировать многочисленные сбои и погрешности системы. Они нередко случаются в постоянном круглосуточном функционировании сервисов компании. При определении общих проблем используются утвержденные стандартные коды. 
Во время работы абонента с сервисами компании код 0 обозначает возникновение внутреннего сбоя функционирования системы Теле2. На экранах девайсов абонентов подобная погрешность появляется в момент отправки пользователем СМС посредством операторского портала, но также часто и в приложении.
Отображение этого кода происходит в тех ситуациях, когда система сотового оператора в силу каких-либо причин не в состоянии полноценно осуществлять идентификацию абонента. Как правило — в большинстве подобных ситуаций это возникает в результате попыток отправки СМС, однако, она высвечивается также в момент обработки запроса — при попытке смены тарифного плана, подключения либо отключения опций.
Такая внутренняя погрешность при функционировании системы МегаФон случается в результате того, что невозможно проверить MSISDN абонента. Сложная аббревиатура всего лишь представляет официальное обозначение номера абонента, который у нас зафиксирован. Когда система Теле2 затрудняется с проверкой номера клиента, то она выдает на экран пользователя специфическую надпись error, указывая при этом код ошибки 0. 
Причины возникновения ошибки 0
Извещение о том, что произошла ошибка 0, может появляться на экране девайса в совершенно разных случаях. Это совсем не означает, что в такой момент происходит сбой функционирования операторских сервисов. Далее речь пойдет о том, в каких конкретных ситуациях возникает такой дефект.
Он очень часто появляется тогда, когда абонент пытается осуществить авторизацию в системе самостоятельного управления услугами на своем номере. Пользователи это делают и в приложении, и посредством портала компании.
Сбой возникает и в тот момент, когда появляется проблема в функционировании системы оператора. Прежде всего, такие ситуации случаются во время всех незапланированных, а также плановых технических работ. Еще это бывает в результате перегруженности серверов оператора в настоящее время. Столкнувшись с извещением об ошибке 0, можно просто попробовать выполнить вход в личный кабинет несколько позже.
Подобное оповещение появляется также из-за проблемы в соединении с сервисом на стороне абонента. Ошибка 0 возникает в том случае, когда в месте попытки соединения абонента существует нестабильное подключение к сети интернет. В такой ситуации у системы не получается сообщить необходимые сведения на сервер оператора, а также получить от него четкий ответ.

Существует великое множество самых разнообразных причин возникновения на экране девайса абонента ошибки 0. Это может случиться даже тогда, когда у пользователя на смартфоне, телефоне либо компьютере выставлено неправильное время либо текущая дата. Подобные погрешности приводят к тому, что происходит конфликт в момент обмена информацией с сервером провайдера.
Во всех случаях, когда абоненты пользуются приложением, а вход в систему не представляется возможным, поскольку на экране гаджета эта погрешность, сразу необходимо проверить, какая версия программы установлена. Часто происходит так, что доступна обновленная версия приложения Теле2. В этой ситуации уже не поддерживается старая версия. С целью устранения дефекта, просто необходимо выполнить обновление программы.
Еще может быть, что сбой с кодом 0 случается тогда, когда во время попытки отправки СМС, пользователь неверно указывает сведения о своем пароле либо абонентском номере. Первый раз система оповестит о неверно указанной информации. Далее, когда последовательно, несколько раз подряд с одного и того же девайса отправляются запросы с неправильными сведениями, система отправляет внутреннюю погрешность. Таким образом, устройство пресекает попытки несанкционированного доступа.
В связи с этим, первым делом пользователю следует проверить правильность введения пароля и номера абонента в момент самого первого извещения системы об ошибке 0. Когда же человек не помнит свой пароль, ему необходимо воспользоваться входом по коду посредством SMS. Можно войти в личный кабинет с автоматической авторизацией при использовании интернета через сеть оператора Теле2.
Код состояния HTTP 0-что это означает для fetch или XMLHttpRequest?
Что касается кода возврата 0 для сетевых вызовов JavaScript fetch, XMLHttpRequest и MS XMLHTTP, у меня есть HTA( приложение Microsoft HTML-автономное приложение HTML + JavaScript), которое использует стандартный объект MS XMLHTTP COM ( Microsoft.XMLHTTP или Msxml2.XMLHTTP в зависимости от обнаруженной версии) с помощью кода JavaScript для отправки некоторых данных обратно на сервер.
он возвращает код состояния 0. Это, по-видимому, не действительный код состояния HTTP (они должны быть три цифры в соответствии с официальная спецификация.) (Кстати, я попытался отключить сетевое соединение и получил код состояния 17003 или что-то в этом роде, что, как я думаю, из-за большого количества Google означает «поиск DNS-сервера не удался».)
Он отлично работает для меня и некоторых других людей, которые испытали ее из разных мест. Однако я отправил это клиенту, и они получили код состояния HTTP, равный нулю, а HTTP responseText пуст. Клиент попробовал его из двух мест, но оба в пределах своей корпоративной сеть.
Это HTTP-сообщение для HTTP-URL в Интернете (а не файл:// запрос, который, как я понимаю, также вернет код состояния 0 для успеха в Mozilla). Я уверен, что это код сбоя, так как он должен возвращать некоторое подтверждение как responseText , и мы не получаем данные, записанные в базе данных.
13 ответов:
Я считаю, что код ошибки указывает, что ответ был пуст, (так как даже заголовки не были возвращены). Это означает, что соединение было принято, а затем закрыто изящно (TCP FIN). Есть несколько вещей, которые могут вызвать это, но на основе вашего описания, какая-то форма брандмауэра кажется наиболее вероятным виновником.
- запрос на незаконное перекрестное происхождение (см. CORS)
- блокировка брандмауэра или фильтрация
- сам запрос был отменен в коде
- установленное расширение браузера портит вещи
для чего это стоит, в зависимости от браузера, вызовы AJAX на основе jQuery будут вызывать ваш обратный вызов успеха с кодом состояния HTTP 0. Мы нашли код состояния «0» обычно означает, что пользователь перешел на другую страницу до завершения AJAX-вызов.
не такой же технологический стек, как вы используете, но, надеюсь, полезно для кого-то.
wininet.dll возвращает стандартные и нестандартные коды состояния, перечисленные ниже.
для кода состояния «ноль» вы пытаетесь сделать запрос на локальную веб-страницу, работающую на веб-сервере или без веб-сервера?
XMLHttpRequest status = 0 и XMLHttpRequest statusText = неизвестно могу помочь, если вы не используете свой скрипт на сервер.
-
мы по-прежнему записываем данные в текстовый файл на локальном жестком диске, как и ранее, используя HTA.
-
когда пользователь нажимает кнопку «отправить данные обратно на сервер», HTA считывает данные и записывает HTML-страницу это включает в себя эти данные как остров данных XML (фактически с использованием языка сценариев=блок сценариев XML).
-
HTA запускает ссылку на HTML-страницу в браузере.
-
HTML-страница теперь содержит javascript, который отправляет данные на сервер (с помощью Microsoft.XMLHTTP).
код ответа HTTP 0 указывает, что запрос AJAX был отменен.
Это может произойти либо из таймаута, XHR аборта или брандмауэра топать на запрос. Тайм-аут является общим, это означает, что запрос не удалось выполнить в указанные сроки. В то XHR аборт-это очень просто сделать. вы действительно можете позвонить .abort () на объекте XMLHttpRequest для отмены вызова AJAX. (это хорошая практика для одной страницы приложения, если вы не хотите AJAX звонки возврат и попытка ссылаться на объекты, которые были уничтожены.) как уже упоминалось в отмеченном ответе, брандмауэр также будет способен отменить запрос и вызвать этот ответ 0.
XHR прервать:прервать Ajax запросы с помощью jQuery
стоит отметить, что работает .метод abort () для объекта XHR также запускает обратный вызов ошибки. Если вы выполняете какую-либо обработку ошибок, которая анализирует эти объекты, вы быстро обратите внимание, что прерванный XHR и тайм-аут XHR идентичны, но с jQuery textStatus, который передается обратному вызову ошибки, будет «прерван», когда прерван и «тайм-аут» с тайм-аутом происходит. Если вы используете Zepto (очень похожий на jQuery), errorType будет «ошибка» при прерывании и «тайм-аут» при возникновении тайм-аута.
в моем случае статус стал 0, когда я забыл бы поставить WWW перед моим доменом. Потому что все мои запросы ajax были жестко закодированы http:/WWW.mydomain.com и веб-страница загружается будет просто http://mydomain.com это стало проблемой безопасности, потому что его другой домен. Я закончил тем, что сделал перенаправление в моем .файл htaccess, чтобы всегда ставить www впереди.
как подробно это ответ на этой странице, код состояния 0 означает, что запрос не удался по какой-то причине, и библиотека javascript интерпретировала сбой как код состояния 0.
чтобы проверить это вы можете сделать одно из следующих действий:
1) Используйте это расширение chrome,Requestly для перенаправления url-адреса из https версия вашего url к http версия, так как это вызовет ошибку безопасности смешанного контента и в конечном итоге создаст код состояния 0. Преимущество этого подхода заключается в том, что вам не нужно менять свое приложение вообще, и вы можете просто «переписать» свой url с помощью этого расширения.
2) Измените код вашего приложения, чтобы при необходимости сделать вашу конечную точку перенаправить на http версия вашего url вместо https версия (или наоборот). В этом случае запрос завершится ошибкой с кодом состояния 0.
в моем случае это было потому, что вызов AJAX был заблокирован браузером из-за политика того же происхождения. Это была наименее ожидаемая вещь, потому что все мои HTMLs и скрипты, где обслуживаются из 127.0.0.1 . Как можно считать, что они имеют разное происхождение?
во всяком случае, первопричина была невинной на вид <base> теги:
Я убрал <base> тег, который мне, кстати, не нужен, и теперь он отлично работает!
кроме ли, вы можете найти дополнительную информацию о реальной причине, переключившись на синхронно запросы, так как вы получите также исключение :
например :
NetworkError: произошла сетевая ошибка.
в случае, если кто-то еще столкнется с этой проблемой, это давало мне проблемы из-за запроса AJAX и отправки обычного запроса формы. Я решил ее с помощью следующей строки:
ключ есть возврат false, который заставляет форму не отправлять. Вы также можете просто вернуть false изнутри submitfunc(), но я нахожу, что явно пишу его, чтобы быть более ясным.
следует отметить, что загрузка файла ajax превышает client_max_body_size директива для nginx вернет этот код ошибки.
Я нашел новую и недокументированную причину статуса = = 0. Вот что у меня было:
Это не было перекрестным происхождением, сетью или из-за отмененных запросов (по коду или по навигации пользователя). Ничего в консоли разработчика или сетевом журнале.
Я мог бы найти очень мало документации по state () (Mozilla не перечисляет его, W3C делает), и ни один из них не упомянул «отклонено».
оказывается, это был мой рекламу (uBlock Origin в Firefox).