相关疑难解决方法(0)

检测HTTP请求正文的结束

我正在编写自己的HTTP客户端和服务器,并希望客户端在请求中包含一个可选的主体.在服务器端,我想在发送HTTP响应之前读取整个主体.我的问题是在服务器上我怎么知道我已经阅读了整个身体?

即使在这种情况下我控制客户端和服务器,我正在寻找一种"标准"方法.但是,由于Content-Length是可选的,我想要一个不需要它的方法.如果客户端关闭连接,则很容易读取所有可用数据,但客户端需要保持连接打开以等待响应,因此此方法不起作用.

我能想到的只有身体的格式和检测终结者(例如</HTML>).理想情况下,我不想要那些知识.

我有一种方法可以忽略吗?

http

52
推荐指数
5
解决办法
6万
查看次数

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

我在LAMP环境中发现了一个奇怪的现象.
在前端,我用jQuery执行一个AJAX post请求,如下所示:

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

的变量d1,以dN从网站(例如,从文字输入,文字区域,复选框等)与jQuery预先收集.

该文件save.php将post参数data1传递给dataN一个查询并将其保存在数据库中.

除非我在请求期间更改页面(例如,通过单击链接),否则请求大约需要500毫秒并且没有问题.

通常情况下,我希望请求被中止和忽略(这很好)但是(这是奇怪的行为)请求似乎已经完成,但只有部分数据被传输并因此被保存.

这意味着,例如,PHP脚本只保存data1data5并设置data6dataN空.
这个问题似乎已经被AJAX请求(不是PHP脚本),因为场引起$_POST['data6'],以$_POST['dataN']在PHP中没有设置在这种情况下.

所以我的问题:
为什么会发生这种情况(这是预期的行为)?
我怎么能避免呢?

更新
问题既不是jQuery也不是php.jQuery正确收集值并尝试将它们发布到php.我刚刚验证了它 - 它有效.另一方面,php脚本处理它按预期获得的所有内容 - 它只是没有收到整个请求.
所以问题必然是被中断的请求本身.与我预期它不会中止或失败不同,它仍会传输所有数据直到中断.
然后php获取此帖子数据并开始处理它 - 显然缺少一些信息.

更新2
我加入一个参数固定的问题eofdataN,并检查它是否是PHP设置.通过这种方式,我可以确保传输了整个请求.
然而,这并不能解决我仍然不理解的问题的根源.
有人帮忙吗?

php mysql ajax jquery post

25
推荐指数
3
解决办法
5233
查看次数

标签 统计

ajax ×1

http ×1

jquery ×1

mysql ×1

php ×1

post ×1