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

Javascript 主干:部分客户端验证+;服务器端验证,javascript,ruby-on-rails,validation,backbone.js,Javascript,Ruby On Rails,Validation,Backbone.js,我已经玩了一段时间了。我非常喜欢,但它只做简单的客户端验证 在我的一些项目中,我有只能在服务器(Rails)上运行的验证。在我的理想世界中,我可以让服务器返回422(不可处理实体),并为我提供属性及其相应错误的映射,以便我可以在UI中突出显示它们 有人遇到过这个问题吗?最好进行服务器端验证 但是,如果您的客户端验证足够彻底,并且可以执行所需的突出显示,那么您不需要将完整的突出显示参数返回到浏览器,您只需防止提交往返,并在客户端执行所需的任何操作即可 为此,我使用了jQuery valitatio

我已经玩了一段时间了。我非常喜欢,但它只做简单的客户端验证

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


有人遇到过这个问题吗?

最好进行服务器端验证

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

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


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

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

渲染,状态:422