2013-10-04 4 views
2

Я уже некоторое время играю с позвоночником. Мне очень нравится backbone.validation library, но он просто упрощает проверку на стороне клиента.Магистраль: проверка частичной клиентской стороны + проверка на стороне сервера

В некоторых моих проектах у меня есть проверки, которые могут выполняться только на сервере (Rails). В моем идеальном мире я мог бы вернуть сервер 422 (Unprocessable Entity) и предоставить мне сопоставление атрибута (ов) и соответствующих им ошибок, чтобы я мог выделить их в пользовательском интерфейсе.

Кто-нибудь сталкивался с этой проблемой?

+1

'render , статус: 422' –

ответ

0

Хорошо иметь подтверждение на стороне сервера.

Однако, если ваша проверка на стороне клиента достаточно тщательна и может сделать выделение, которое вы хотите, вам не нужно будет возвращать в браузере полные параметры подсветки, вы можете просто запретить отправку туда-обратно и выполнять любой UX, который вы хотите клиентская сторона.

Я использовал плагин valence для jQuery с этой целью с большим успехом, возможен полный обмен сообщениями и подсветкой и все необходимые проверки в одном плагине. Не уверен, как он сравнивается с валидацией базовой линии.

http://jqueryvalidation.org/

0

Хотя проверки на стороне клиента отлично подходит для работы пользователей, приложений на основе сервера никогда не должны полагаться на проверки на стороне клиента в одиночку, как это легко можно обойти и разрешить атаки. Если вы решите, чтобы проверка на стороне клиента для целей UX была большой, но вы всегда должны проверять серверную сторону. См. «here» или «here» для получения дополнительной информации или просто для устранения проблемы «с проверкой только на стороне клиента».

Это говорит о том, что наше приложение backbone + rails действительно возвращает ошибку 422 (необработанная сущность), когда валидация терпит неудачу в модели рельсов. Если вы не видите этого, то вы либо не проверяете объект модели рельсов, либо у вас есть какая-то развязка между рельсами и базовыми моделями.

Смежные вопросы