主干:部分客户端验证 + 服务器端验证

Backbone: Partial client side validation + server side validation

本文关键字:验证 服务器端 客户端 主干      更新时间:2023-09-26

我已经玩了一段时间的骨干了。 我真的很喜欢 backbone.validation 库,但它只做简单的客户端验证。

在我的一些项目中,我有只能在服务器(Rails)上运行的验证。 在我的理想世界中,我将能够让服务器返回 422(无法处理的实体),并为我提供属性及其相应错误的映射,以便我可以在 UI 中突出显示它们。

有没有人遇到过这个问题?

最好进行服务器端验证。

但是,如果您的客户端验证足够彻底并且可以执行所需的突出显示,则无需将完整的突出显示参数返回到浏览器,只需阻止提交往返并在客户端执行任何您想要的 UX。

为此,我已经使用了jQuery价值插件,并取得了巨大的成功,完整的错误消息和突出显示是可能的,并且在一个插件中进行了所有必要的验证。不确定它与主干验证相比如何。

http://jqueryvalidation.org/

虽然客户端验证非常适合用户体验,但基于服务器的应用程序不应单独依赖客户端验证,因为它很容易被绕过并允许攻击。如果您选择出于 UX 目的进行客户端验证,那就太好了,但您应该始终验证服务器端。请参阅此处或此处以获取更多信息,或者只是谷歌"仅客户端验证问题"。

也就是说,当 rails 模型上的验证失败时,我们的主干 + rails 应用程序确实会返回 422(无法处理的实体)错误。如果您没有看到这一点,那么您要么没有在 rails 模型对象上进行验证,要么您在 rails 和主干模型之间存在某种断开连接。