![服务器何时看到用户数据](https://linux22.com/image/1618126/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%95%E6%97%B6%E7%9C%8B%E5%88%B0%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE.png)
即使没有按下“提交”或“下一步”按钮,服务器端的人能知道用户在表单中输入的数据吗?我已经输入了数据,但在浏览器中打开了另一个选项卡,并在那里花了半个小时左右。返回后,我删除了输入的数据,中止了该过程,并且从未按下“下一步”按钮。然而,有人从他们那边打电话问我为什么没有完成这个过程。他们有所有这些数据,比如电话号码。这怎么可能呢?
答案1
表单可以附加客户端 JavaScript 事件,每次更改字段时,JS 代码都可以向服务器提交更新。(这种技术曾经被称为AJAX。
例如,许多网络邮件和论坛网站(包括本网站)都使用相同的方法,以便在您输入时保存“草稿”。Gmail 中没有保存草稿的按钮,而是通过 JavaScript“按键释放”事件自动完成。
在大多数浏览器中,如果您打开“开发人员工具”窗口(F12)并转到其“网络”选项卡,您将看到这种情况,然后将所有基于 JavaScript 的网络请求显示为“xhr”。
当然,自动提交的草稿数据应该通常情况下不会被系统视为完整提交——但我猜有时营销团队的要求会绕过常识。
(几年前,人们发现 Facebook 使用这种方法来分析人们输入并删除的所有状态更新。尽管如此,这并没有导致不必要的电话骚扰。)
答案2
当您将页面加载到浏览器窗口时,它可以看到鼠标在该窗口上的移动以及窗口处于活动状态时的按键操作。
这很有用(例如对于浏览器游戏),但也可能产生意想不到的后果——没有什么可以阻止以某种方式编程的简单表单,它在输入数据时提交数据,而不仅仅是在单击提交按钮时提交数据。