我遇到了一个场景,我只在 IE8 浏览器中被抛出了一个意外的行为。IE9 和 Firefox 浏览器工作正常。行为如下:
- 用户填写了一个表单
- 故意 - 用户将必填字段留空
- 用户单击“提交按钮”,浏览器发送 POST 请求
- 预期行为 - 错误消息与已提供的数据一起抛出。只有必填字段应该留空,因为我们在第 2 步中没有提供任何内容。但相反,我收到一条错误消息,之前的数据丢失,即表单为空。
请注意,这只发生在 IE8 中。有什么建议么?
我遇到了一个场景,我只在 IE8 浏览器中被抛出了一个意外的行为。IE9 和 Firefox 浏览器工作正常。行为如下:
请注意,这只发生在 IE8 中。有什么建议么?
我将自己回答这些问题。所以,这就是我的场景中发生的事情。这是一个双击问题。但我只点击了一次按钮。那么这是怎么发生的呢?一些从事此项目的程序员正在处理表单提交,他使用 JavaScript 进行了另一次提交。但是,这在 Firefox 或 IE9+ 中是如何工作的呢?
我使用 Fiddler 进行了深入研究——我注意到在 IE8 浏览器中向服务器发送了两个请求。但是 IE9 和 Firefox 正确处理了这种情况(即了解双击)并且只发送 1 个 POST 请求而不是 2 个。
使用的技术:Spring Framework 2.0、JSP、HTML、JavaScript
数据丢失的原因也与服务器有关 - Spring 在处理请求时修改了会话属性(具体来说,它是一个临时删除并重新添加的 formObject)。当同时有另一个请求时,它会通过另一个管道(handleInvalidSubmit),最终创建一个新的 formObject 并因此破坏旧数据。
希望这对其他人有帮助:)