jQuery post 请求中断:只有一半的 post 参数到达
我注意到我的LAMP环境中有一个奇怪的现象。
在前端,我使用jQuery执行AJAX post请求,如下所示:
$.post('save.php', {data1: d1, data2: d2, [...], dataN: dN})
要事先使用jQuery从网站收集的变量(例如,从文本输入,文本区域,复选框等) 中收集。d1
dN
该文件将 post 参数获取到,并通过一个查询将它们保存在数据库中。save.php
data1
dataN
请求大约需要500毫秒,并且工作没有问题,除非我在请求期间更改页面(例如通过单击链接)。
通常,我希望请求被中止和忽略(这很好),但是(这是奇怪的行为)请求似乎已完成,但只有部分数据传输并因此保存。
这意味着,例如,php 脚本仅保存到 并设置为空。
这个问题似乎是由AJAX请求(不是php脚本)引起的,因为在这种情况下,php中没有设置字段。data1
data5
data6
dataN
$_POST['data6']
$_POST['dataN']
所以我的问题:
为什么会发生这种情况(这是预期的行为)?
我该如何避免?
更新
问题既不是jQuery,也不是php。jQuery正确收集值并尝试将它们发布到php。我刚刚验证了它 - 它的工作原理。另一方面,php脚本按预期处理它得到的一切 - 它只是没有收到整个请求。
因此,问题一定是中断的请求本身。与我希望它不会中止或失败不同,它仍然传输所有数据,直到截止。
然后php获取此帖子数据并开始处理它 - 显然缺少一些信息。
更新2
我通过在之后添加一个参数并检查它是否在php中设置来修复问题。通过这种方式,我可以确定整个请求已传输。
然而,这并不能解决我仍然不理解的问题的根源。
对任何人有任何帮助吗?eof
dataN