Это происходит потому, что Laravel Form Request работает как для запросов API, так и для запросов, не относящихся к API.
При запросах, сделанных формой, он будет перенаправлен обратно (на исходный URL-адрес формы или домой, если он не отправлен из формы).) с сумкой ошибок в переменной $errors
, доступной для представления.
На запросах, сделанных ajax (обычно в API), обычно есть заголовок Accept: application/json
, поэтому Laravel автоматически знает, что вы хотите мешок ошибок проверкикак json в теле ответа вместо перенаправления, которое не имеет смысла для API.
Надеюсь, это может прояснить ситуацию для вас.