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

时间:2013-10-04 08:01:09

标签: javascript ruby-on-rails validation backbone.js

我一直在玩骨干一段时间了。我非常喜欢backbone.validation library,但它只进行简单的客户端验证。

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

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

2 个答案:

答案 0 :(得分:0)

最好进行服务器端验证。

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

为此,我使用了jQuery valitation插件取得了巨大的成功,可以使用完整的错误消息和突出显示以及一个插件中必需的所有验证。不确定它与Backbone验证的比较。

http://jqueryvalidation.org/

答案 1 :(得分:0)

虽然客户端验证非常适合用户体验,但基于服务器的应用程序不应单独依赖客户端验证,因为它可以轻松绕过并允许攻击。如果您选择为UX目的进行客户端验证,那么您应该始终验证服务器端。有关详细信息,请参阅herehere,或仅访问Google +"仅限客户端验证问题"。

也就是说,当rails模型上的验证失败时,我们的主干+ rails应用确实会返回422(Unprocessable Entity)错误。如果您没有看到这个,那么您要么未在rails模型对象上进行验证,要么在rails和骨干模型之间存在某种脱节。