【问题标题】:Backbone: Partial client side validation + server side validationBackbone:部分客户端验证+服务器端验证
【发布时间】:2013-10-11 03:43:38
【问题描述】:

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

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

有人遇到过这个问题吗?

【问题讨论】:

  • render <your_mapping>, status: 422

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


【解决方案1】:

最好有服务器端验证。

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

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

http://jqueryvalidation.org/

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 2010-09-14
      • 2016-10-16
      相关资源
      最近更新 更多