Коды ответа HTTP — HTTP | MDN

400 vs 422 ответ на сообщение данных

400 Плохой Запрос теперь, похоже, лучший код состояния HTTP/1.1 для вашего варианта использования.

во время вашего вопроса (и мой оригинальный ответ), RFC 7231 не было вещью; в этот момент я возразил 400 Bad Request, потому что RFC 2616 сказал (с ударением на моем):

запрос не может быть понят сервером из-за синтаксических ошибок.

и запрос, который вы описываете, является синтаксически допустимым JSON, заключенным в синтаксически допустимый HTTP, и, таким образом, сервер не имеет проблем с синтаксис запрос.

как указал ли Saferite в комментариях, RFC 7231, который устаревает RFC 2616, не включает это ограничение:

код состояния 400 (плохой запрос) указывает, что сервер не может или не будет обрабатывать запрос из-за что-то, что воспринимается как ошибка клиента (например, неправильный синтаксис запроса, недопустимое обрамление сообщения запроса или обманчивая маршрутизация запроса).


,

до этого переформулировка

(или если вы хотите придираться к RFC 7231 только будучи

предложил

стандартная сейчас),

422 Unprocessable Entity

Не кажется

неправильно

код состояния HTTP для вашего варианта использования, потому что as

введение в RFC 4918 говорит:

пока коды состояния обеспеченные HTTP / 1.1 достаточны к
опишите большинство условий ошибок, встречающихся методами WebDAV, там
некоторые ошибки, которые не укладываются в существующие категории.
Эта спецификация определяет дополнительные коды состояния, разработанные для WebDAV
методы (Раздел 11)

и описание 422 говорит:

В 422 (Unprocessable Лица) код состояния означает сервер
понимает тип содержимого сущности запроса (следовательно, a
415 (неподдерживаемый тип носителя) код состояния неуместен), и
синтаксис сущности запроса правильный (таким образом, 400 (плохой запрос)
код состояния не подходит), но не удалось обработать содержащиеся
инструкции.

(обратите внимание на ссылку на синтаксис; я подозреваю, что 7231 частично устаревает 4918 тоже)

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

например, это условие ошибки может возникнуть, если XML
тело запроса содержит хорошо сформированные (т. е. синтаксически правильные), но
семантически ошибочные, XML-инструкции.

(замените » XML » на «JSON», и я думаю, мы можем согласиться, что это ваша ситуация)

теперь некоторые будут возражать, что RFC 4918 — это » HTTP-расширения для веб-распределенной разработки и управления версиями (WebDAV) » и что вы (предположительно) ничего не делаете с WebDAV, поэтому не должны использовать вещи из него.

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

кроме того, RFC 4918 раздел 21.4 относится к IANA Hypertext Transfer Protocol (HTTP) status code Registry, где 422 можно найти.

Я предлагаю, что для HTTP-клиента или сервера вполне разумно использовать любой код состояния из этого реестра, если они делают это правильно.


но по состоянию на HTTP / 1.1,RFC 7231 имеет тягу, поэтому просто используйте 400 Bad Request!

Ror | post запрос возращает 422 ошибку

Вариаций почему так происходит может быть множество.

  1. Когда объект имеет ошибки и вы отвечаете в формате JSON, вы всегда будете получать статус 422.

Вам нужно понять, почему у вашего объекта были ошибки. И это может быть что угодно.

  1. CSRF валидация.
    Уберите проверку CSRF токена в текущем контроллере

skip_before_action :verify_authenticity_token

  1. Добавьте токен в представление.

<%= csrf_meta_tags %>

  1. Если используете AJAX

    $.ajax({ type: "post", beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))}, url: "/form_submit/<%= @form.id %>" , data: form_data, success: function(data, textStatus, jqXHR){ console.log("this is success"); }, error: function(jqXHR, textStatus, errorThrown){ } });

Но не факт, что вышеперечисленное поможет. Нужен конкретный код по вашему случаю.

Классические проблемы property not found

Эти проблемы Windows Operating System, связанные с Property not found, включают в себя:

Эти сообщения об ошибках Microsoft Corporation могут появляться во время установки программы, в то время как программа, связанная с Property not found (например, Windows Operating System) работает, во время запуска или завершения работы Windows, или даже во время установки операционной системы Windows.

Ошибки клиента (4xx)

Коды состояния, указывающие на ошибку со стороны клиента. Если запрос не произведен методом HEAD, то в теле ответа сервера должно присутствовать описание произошедшей ошибки.

  • 400 Bad Request — ошибка синтаксиса в запросе.
  • 401 Unauthorized — для обработки запроса требуется аутентификация.
  • 402 Payment Required — для обработки запроса требуется оплата.
  • 403 Forbidden — доступ запрещен, запрос не может быть обработан.
  • 404 Not Found — запрашиваемый ресурс по-указанному URI не найден.
  • 405 Method Not Allowed — метод запроса недопустим для запрашиваемого ресурса, к ответу сервера необходимо добавить заголовок Allow с допустимыми методами.
  • 406 Not Acceptable — указанный URI не соответствует передаваемым параметрам заголовка запроса, если это не HEAD-запрос, то в ответе нужно перечислить необходимые параметры.
  • 407 Proxy Authentication Required — похож на 403 Forbidden, только авторизоваться нужно на прокси-сервере, а не на исходном сервере.
  • 408 Request Timeout — истекло время ожидания окончания процедуры передачи данных клиента серверу.
  • 409 Conflict — конфликт происходит когда одномоментно пришли запросы на изменение ресурса от нескольких клиентов.
  • 410 Gone — запрашиваемый ресурс существовал ранее, но был удален.
  • 411 Length Required — для обработки запроса, сервер ожидает, что будет передан заголовок Content-Length, а в текущем запросе он отсутствует.
  • 412 Precondition Failed — если в запросе был передан заголовок If-Match, и все указанные в нем условия не выполнились.
  • 413 Payload Too Large — размер содержимого тела запроса чересчур большой для запрашиваемого ресурса.
  • 414 URI Too Long — длина указанного URI в запросе чересчур большая для запрашиваемого ресурса.
  • 415 Unsupported Media Type — запрашиваемый ресурс не может обработать указанный в запросе тип данных.
  • 416 Range Not Satisfiable — переданный диапазон в заголовке запроса Range некорректен и не был передан заголовок If-Range.
  • 417 Expectation Failed — переданное значение в заголовке запроса Expect некорректно для ресурса.
  • 418 I’m a teapot — первоапрельская шутка).
  • 421 Misdirected Request — произошло перенаправление на сервер, который не в состоянии вернуть ответ.
  • 422 Unprocessable Entity — логическая ошибка содержимого тела запроса.
  • 423 Locked — невозможно обработать запрос, запрашиваемый ресурс заблокирован.
  • 424 Failed Dependency — невозможно обработать запрос, так как одна из зависимостей запрашиваемого ресурса заблокирована.
  • 426 Upgrade Requiredy — сервер запрашивает обновление соединения до SSL, а клиент не поддерживается SSL.
  • 428 Precondition Required — клиент обязательно должен передать заголовок If-Match в запросе для запрашиваемого ресурса.
  • 429 Too Many Requests — клиент запрашивает ресурс слишком часто за короткий промежуток времени, сервер в ответе может вернуть заголовок Retry-After с информацией когда можно будет повторно запросить ресурс.
  • 431 Request Header Fields Too Large — длина заголовков в запросе чересчур большая для запрашиваемого ресурса.
  • 451 Unavailable For Legal Reasons — запрашиваемый ресурс недоступен по юридическим причинам.

Ошибки сервера (5xx)

Коды состояния, указывающие на ошибку со стороны сервера. Если запрос не произведен методом HEAD, то в теле ответа сервера должно присутствовать описание произошедшей ошибки.

Перенаправления (3xx)

Коды состояния, сообщающие клиенту что нужно совершить запрос на другой URI, который указывается в заголовке Location ответного сообщения. Во всех случаях перенаправленный запрос должен осуществляться тем же методом, что и исходный, кроме случая, если по исходному запросу вернулся ответ 303 See Other.

  • 300 Multiple Choices — в ответе возвращается перечисление альтернативных вариантов для перенаправления, выбор может производиться пользователем или клиентом автоматически.
  • 301 Moved Permanently — информирует об окончательном переносе запрашиваемого ресурса на другой URI.
  • 302 Found или 302 Moved Temporarily — информирует о временном переносе запрашиваемого ресурса на другой URI.
  • 303 See Other — информирует о том, что нужно совершать перенаправление только методом GET.
  • 304 Not Modified — информирует о том, что ресурс не был изменен с конкретного момента, будет возвращен только если исходный запрос был произведен методом GET с содержанием заголовка If-Modified-Since или If-None-Match.
  • 305 Use Proxy — информирует о том, что запрос должен производиться через прокси-сервер, возвращается только исходным сервером.
  • 307 Temporary Redirect — аналогичен 302 коду, но в отличие от 302 гарантирует, что метод и тело не будут изменены при перенаправлении.
  • 308 Permanent Redirect — аналогичен 301 коду, но в отличие от 301 гарантирует, что метод и тело не будут изменены при перенаправлении.

Причины проблем property not found

Проблемы Property not found могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Property not found, или к вирусам / вредоносному ПО.

В частности, проблемы с Property not found, вызванные:

Продукт Solvusoft

ЗагрузкаWinThruster 2021 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

Список ошибок от error 400 до error 410

Важно: нажмите на ссылку, чтобы перейти к подробному описанию ошибки

  • Ошибка 405: Method Not Allowed. Сообщение указывает на то, что метод используемый клиентом для заданного URL-адреса не поддерживается. К примеру, при отправке POST-данных на страницу, которая по своей сути не является скриптом.
  • Ошибка 406: Not Acceptable. Это сообщение даёт понять, что запрашиваемый ресурс находится на сервере не соответствует запрашиваемому формату. Вместе с сообщением об ошибке, сервер укажет список необходимых характеристик для этого ресурса.
  • Ошибка 407: Proxy Authentication Required. Это сообщение появляется лишь в ситуациях, когда существуют ограничения доступа к запрашиваемым данным на прокси-сервере. Разрешение к ним возможно лишь при вводе правильного пароля либо авторизации в системе.
  • Ошибка 408: Request Timeout. Код даёт понять, что время на выполнение отправки запроса истекло и связь была разорвана. Сообщение возникает из-за проблем с сетью (медленный интернет, перегруженность сети). При кратковременных перегрузках в сети помогает повторная отправка запроса.
  • Ошибка 409: Conflict. Это сообщение указывает, что ваш запрос к ресурсу конфликтует с чьим-то обращением, либо конфликт происходит с настройками самого сервера.
  • Ошибка 410: Gone.Этот код даёт понять отправителю запроса, что искомые данные были полностью удалёны с сайта и доступ к ним в настоящее время невозможен.
Похожее:  Google утаила от пользователей новую функцию автоматической авторизации