Короткий ответ : успешные запросы POST часто возвращают 303 ответа, если он успешен.Коды ошибок находятся в диапазоне 400-599 (400-499 для ошибок клиента и 500-599 для ошибок сервера).Коды состояния в диапазоне 300-399 используются для перенаправления на другую конечную точку.
сообщение отправляет мне сообщение об ошибке, когда я пытаюсь проверить его
Status: 303 See Other 0.000248996s
Это не ошибка.POST с правильными данными, как правило, возвращает перенаправление.Это связано с архитектурным шаблоном Post / Redirect / Get [wiki] .
Если запрос действителен, запрос POST, скорее всего, внесет изменения вбаза данных.Если вы не сделаете перенаправление, то обновление страницы в браузере приведет к другому запросу POST (некоторые браузеры сначала предупреждают пользователя об этом).Второе POST может привести к созданию второй записи, внесению второго платежа, заказу второго товара и т. Д. Обычно это не то, чего хочет пользователь.
Это поведение задокументировано в RFC2612 о протоколе HTTP 1.1 [ietf.org] :
Этот метод существует главным образом для разрешения вывода POST-активированного сценарияперенаправить пользовательский агент на выбранный ресурс .Новый URI не является замещающей ссылкой на первоначально запрошенный ресурс.
Мы находим аналогичный результат на Кодах ответов HTTP на странице Учебное пособие по REST API [restfulapi.net] :
303 (см. Другие)
A 303 ответ указывает, что ресурс контроллера имеетзавершил свою работу , но вместо отправки потенциально нежелательного тела ответа он отправляет клиенту URI ресурса ответа.Это может быть URI временного сообщения о состоянии или URI некоторого уже существующего, более постоянного ресурса.
Вообще говоря, код состояния 303 позволяет REST API отправлять ссылку наресурс, не заставляя клиента загружать его состояние .Вместо этого клиент может отправить запрос GET к значению заголовка Location.
Ответ 303 НЕ ДОЛЖЕН кэшироваться, но ответ на второй (перенаправленный) запрос может быть кэширован.