2

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

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

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

4

2 回答 2

0

虽然客户端验证对用户体验很有帮助,但基于服务器的应用程序永远不应该单独依赖客户端验证,因为它很容易被绕过并允许攻击。如果您选择为 UX 目的进行客户端验证很好,但您应该始终验证服务器端。有关更多信息,请参见此处此处,或者只是谷歌“仅客户端验证问题”。

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

于 2015-04-14T19:41:31.907 回答
0

最好有服务器端验证。

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

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

http://jqueryvalidation.org/

于 2013-10-29T01:03:26.300 回答