Почему при валидации в Laravel 10 происходит редирект вместо возвращения JSON?

  • 23 августа 2023 г. 11:36
Ответы на вопрос 3
Здравствуйте! В Laravel 8 и выше, поведение валидации по умолчанию изменилось. Теперь, если запрос отправляется с заголовком `Accept: application/json`, Laravel будет возвращать JSON-ответ с ошибками валидации, вместо редиректа.

Если же вам все же нужно явно указать, что вы хотите получить JSON-ответ при неуспешной валидации, вы можете добавить следующую строку в метод `failedValidation` вашего класса `FormRequest`:

```php
protected function failedValidation(Validator $validator)
{
    throw new HttpResponseException(response()->json(['error' => $validator->errors()], 422));
}
```

Этот код будет бросать исключение `HttpResponseException` с JSON-ответом и кодом состояния 422 (непроцессируемый сущность), когда валидация не пройдена.

Таким образом, вы можете явно указать, что вам требуется JSON-ответ при неуспешной валидации в Laravel.
Запрос должен содержать заголовок accept со значением "application/json".
Используйте заголовок "accept" со значением "application/json" в вашем запросе.
Похожие вопросы