php只有一半的 >,php – jQuery post请求中断:只有一半的post参数到达

我在我的LAMP环境中注意到一个奇怪的现象。

在前端我执行一个AJAX post请求与jQuery像这样:

$.post('save.php', {data1: d1, data2: d2, [...], dataN: dN})

变量d1至dN是从网站(例如从文本输入,文本区域,复选框等)预先用jQuery收集的。

文件save.php将post参数data1转换为dataN,并在一个查询中将它们保存在数据库中。

该请求大约需要500毫秒,除非在请求期间更改页面(例如,通过单击链接),否则无误。

通常,我期望请求被中止和忽略(这将是罚款)​​,但是(这是奇怪的行为)请求似乎已完成,但只有部分数据传输并保存。

这意味着,例如,php脚本只保存data1到data5,并将data6设置为dataN为空。

这个问题似乎是由AJAX请求引起的(不是php脚本),因为在这种情况下,在php中没有设置字段$ _POST [‘data6’]到$ _POST [‘dataN’]。

所以我的问题:

为什么会发生这种情况(这是预期的行为)?

如何避免呢?

更新

问题不是jQuery或php。 jQuery正确地收集值,并尝试将其发布到php。我只是验证它 – 它的工作原理。

另一方面,php脚本处理它获得的所有预期 – 它只是不接收整个请求。

所以问题必须是被中断的请求本身。不像我期望它不会中止或失败,它仍然传输所有的数据,直到切断。

然后php获取这个帖子数据并开始处理它 – 显然缺少一些信息。

更新2

我通过在dataN之后添加一个参数eof并检查它是否在php中设置来解决这个问题。这样我可以确保整个请求被传输。

然而这并不能解决我仍然不明白的问题的根源。

任何帮助任何人?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值