Что означает код состояния HTTP 0
Я работаю над проектом iOS.
В этом приложении я загружаю изображения с сервера.
:
при загрузке изображений я получаю Тайм-Аут Запроса. Согласно документации HTTP код состояния таймаута запроса 408
.
но в моем приложении я получаю код состояния HTTP код 0
со следующей ошибкой
Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0xb9af710 {NSErrorFailingURLStringKey=http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg, NSErrorFailingURLKey=http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x13846870 "The request timed out."}
во время поиска по интернету I не найдено информации о HTTP Status Code 0.
может кто-нибудь объяснить это мне?
11 ответов:
нет кода состояния HTTP 0. То, что вы видите, - это 0, возвращаемый API/библиотекой, которую вы используете. Вам придется проверить документацию для этого.
код состояния 0 в
NSHTTPURLResponse
объект обычно означает, что ответа не было, и может произойти по разным причинам. Сервер никогда не вернет состояние 0, так как это не является допустимым кодом состояния HTTP.в вашем случае, вы появляется чтобы получить код состояния 0, потому что запрос тайм-аут и 0-это только значение по умолчанию для свойства. Сам тайм-аут может быть по разным причинам, например, сервер просто не отвечает вовремя, блокируется брандмауэром, или все ваше сетевое подключение не работает. Обычно в случае последнего, хотя телефон достаточно умен, чтобы знать, что он не имеет сетевого подключения и немедленно выйдет из строя. Однако он все равно не будет работать с очевидным кодом состояния 0.
обратите внимание, что в случаях, когда код состояния равен 0, реальная ошибка фиксируется в возвращенном
из моего скромного опыта, я бы сказал, что следующие два сценария могут вызвать ответ
status code: 0
, имейте в виду; их может быть больше, но я знаю об этих двух:
- ваше соединение, возможно, отвечает медленно.
- или, возможно, сервер back-end недоступен.
дело в том, что
status: 0
немного общий, и их может быть больше вариантов использования, которые вызывают пустым телом ответа.
мы получили ошибку:
GET http://localhost/pathToWebSite/somePage.aspx поднял http.статус: Ошибка 0
этот вызов сделан из задачи windows, которая вызывает файл VBS, поэтому для устранения проблемы, указал браузер на url-адрес, и мы получаем ошибку конфиденциальности:
ваше соединение не является частным
злоумышленники могут пытаться похитить ваши данные с localhost (например, пароли, сообщения, или кредитная карта.) NET:: ERR_CERT_COMMON_NAME_INVALID
автоматически сообщать подробности возможных инцидентов безопасности в Google. Политика конфиденциальности вернуться к безопасности этот сервер не может доказать, что это localhost; его сертификат безопасности от *.ourdomain.com. это может может быть вызвано неправильной конфигурацией или злоумышленником, перехватывающим ваш соединение. Учить больше.
Это потому, что у нас есть правило перезаписи URL IIS, установленное для принудительного использования соединений https. Это правило отвлекает http://localhost до https://localhost но наш сертификат SSL основан на внешнем доменном имени, а не localhost, поэтому ошибка, которая сообщается как код состояния 0. Таким образом, ошибка конфиденциальности может быть очень неясной причиной для этого кода состояния 0.
в нашем случае решение было добавить исключение из правила для localhost и разрешить http://localhost/pathToWebSite/somePage.aspx для использования http. Неясно, да, но я столкнусь это в следующем году, и теперь я найду свой ответ в поиске google.
HTTP-ответ 0 не является стандартным HTTP-ответом. Но это указывает на то, что клиент не мог соединиться с сервером и, следовательно, произошло четвертое время ожидания.
у меня есть java-скрипт ajax client & nodejs express application server
клиентский код выглядит так:
... var status1 = xmlHttpRequest.status; ...
код сервера выглядит так:
... // An exception here results HTTP status codes in status1 (at client side above) ... ... var reqDb = http.request(options, requestCompleteCallback); ... ... function requestCompleteCallback(response) { ... // An exception here results in 0 in status1 (at client side above) ... }
30 минут борьбы, чтобы понять это.
Надеюсь, этот пост кому-то поможет.удачи.
on Gate way timeout, статус будет равен нулю при обратном вызове ошибки.
.error( function( data,status,headers,config){ console.log(status) }
CORS в моем случае.
У меня был такой ответ в приложении iOS один раз. Решение было отсутствующим
Access-Control-Allow-Origin: *
в заголовках.еще: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin