Я говорю, что это нормально, за исключением для определенного класса ошибок.
Некоторые ошибки проверки не являются результатом злого умысла, но просто не могут быть проверены и обнаружены в любое другое время, кроме тех случаев, когда форма фактически обрабатывается. Это может быть из-за ограниченного ресурса, который необходимо зарезервировать, но не может быть («это имя пользователя уже используется»), или из-за некоторой исправимой ошибки на стороне сервера («Процессор кредитной карты восходящего направления не отвечает. потом"). Для таких ошибок вам обязательно должно быть передано какое-то сообщение об ошибке пользователю. Трудно представить дизайн, в котором отправка подобных ошибок обратно была бы невозможна. По крайней мере, вы можете сделать это:
- Отправьте свой ответ об ошибке HTTP (4xx или 5xx в зависимости от характера ошибки)
- В текст вашего ответа включите сообщение об ошибке в некоторую структуру данных, которую ваш javascript может легко понять. (JSON или XML, или даже text / plain! Не забудьте установить тип mime.)
- Пусть обработчик ошибок для запроса javascript вставит текст ошибки в видимое место в вашей форме (например, вверху или рядом с кнопкой отправки).
Однако самое важное - это выполнить проверку на стороне сервера и не доверять клиенту. Вы уже делаете это, поэтому, если вы хотите сделать что-то еще, это вопрос совершенства и создания наилучшего пользовательского опыта. Иногда это требует непропорционально больших усилий, и это нормально.