php接收ajax多个数据,php – 如果发送/接收jQuery AJAX数据,是否可以只接收一些数据?...

这篇博客探讨了在使用jQuery的Ajax调用与PHP交互时可能出现的数据丢失或部分传输的问题。虽然TCP协议保证了数据包的可靠传输,但作者提出了在极端情况下,如数据包丢失或乱序,是否可能影响Ajax请求的正确处理。博客解释了HTTP基于TCP的特性确保了数据完整性,并指出这种情况实际上非常罕见,因为TCP会自动重传丢失的数据包以确保数据完整。文章强调了在网络通信中数据的可靠传输和TCP的角色。
摘要由CSDN通过智能技术生成

我们假设这是在jQuery中执行的:

$.ajax({

url : 'ajaxcall.php',

data : { 'data' : { ary : [1,2,3,3,4,5], txt : "ima let u finish" } },

dataType : 'json',

type : 'post',

timeout : 10000

});

而ajaxcall.php包含:

$return_obj = array();

$return_obj['ary'] = array(9,8,7,6,5);

$return_obj['txt'] = "ok then";

echo json_encode($return_obj);

die();

我期待发生以下情况(由于数据包丢失,连接问题等):

> Ajaxcall.php执行,但$_POST变量为空.

> $.ajax()调用的promise将被执行,但返回给它们的数据为空.

但是,我真正担心的是这样的情况:

> Ajaxcall.php执行并且$_POST [‘data’] [‘txt’]具有预期值,但$_POST [‘data’] [‘ary’]缺少某些值.

>执行$.ajax()调用的promise并且data.ary具有期望值,但data.txt只是半个字符串(例如,“ok t”).

这些情况可能吗?

解决方法:

简而言之:不,那是不可能的. HTTP基于TCP,保证数据的传递.服务器和客户端都会意识到会导致某些数据丢失的问题. TCP层将根据需要重新传输数据,直到完成为止.

因为没有规则说路由器必须转发所有数据包但TCP会自动纠正这些问题,因此数据包丢失和无序传输在互联网上并不少见.

标签:jquery,json,php,ajax

来源: https://codeday.me/bug/20190517/1121916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值