Я конечно не PHP разработчик, тестировал на asp.net core. Суть в том, что если происходит ошибка на стороне сервера, мы ее обрабатываем и кидаем исключение в консоль.
Что касается проверки JSON это можно определить по заголовкам в ответе.
Вам необходимо доработать
этот код под ваши потребности и форму.