Jquery 在Ajax表单中验证表单客户端、服务器端或两者?

Jquery 在Ajax表单中验证表单客户端、服务器端或两者?,jquery,ajax,validation,client-side,server-side,Jquery,Ajax,Validation,Client Side,Server Side,我正在开发这个应用程序,它是一个非常基本的Ajax表单,目前我正在使用jQuery的默认验证插件验证表单输入 我想知道我是否应该在提交表单后也进行服务器端验证,或者忽略并假设一切正常,因为客户端验证成功了 但有两件事需要记住: 1)尽管表单可以在不使用JavaScript的情况下提交,但服务器端脚本不会处理此行为。我的意思是,数据将被处理并插入数据库,但它不会返回任何内容,因此用户在提交表单后会看到一个空页面。此外,这个应用程序在JavaScript上很强大,没有它就无法工作(顺便说一句,它是一

我正在开发这个应用程序,它是一个非常基本的Ajax表单,目前我正在使用jQuery的默认验证插件验证表单输入

我想知道我是否应该在提交表单后也进行服务器端验证,或者忽略并假设一切正常,因为客户端验证成功了

但有两件事需要记住:

1)尽管表单可以在不使用JavaScript的情况下提交,但服务器端脚本不会处理此行为。我的意思是,数据将被处理并插入数据库,但它不会返回任何内容,因此用户在提交表单后会看到一个空页面。此外,这个应用程序在JavaScript上很强大,没有它就无法工作(顺便说一句,它是一个Facebook应用程序)


2)现在应用程序非常简单,该表单上只有两个选项。一个是文本框,它是唯一被验证的东西(它是必需的,并且只能是数字)。另一个选项是一组单选按钮,默认情况下会选择其中一个,因此即使用户忘记了此选项,也会选择一些内容。它基本上是此选项的默认值(不过文本框不能有默认值)。

始终验证服务器端!除了安全问题,这可能不会在这里起到很大作用,还有其他一些问题需要坚持:

  • 当我在“两位数”字段中提交类似“q8”的内容(绕过客户端验证)时会发生什么
  • 如果用户没有选择任何选项,那么只设置默认选项并不真正对用户友好

此外,如果表单中只有两个字段,我认为,实现服务器端验证没有那么大的工作量…

服务器端:必要。总是这样做


客户端:不错。使您的应用程序更具响应性。可选。

为什么需要?让我们假设客户端发生了一些事情,可能用户正在篡改应用程序,而服务器端验证失败,我应该向客户端返回什么?我的意思是,客户端验证在每个字段旁边显示内联错误消息,我如何处理服务器端响应?>>我如何处理服务器端响应?嗯,我希望您检测到服务器端错误,并确保不写入数据库。然后记录它,这样您就可以修复客户端(如果客户端有验证错误)。可能您可以在页面顶部为客户端显示服务器端错误(可能他们可以对此做些什么,或者给您打电话)。当您提交“q8”时,验证将失败(客户端)。服务器端,将数据插入数据库时可能会出现问题。。。