如果发送/接收jQuery AJAX数据,是否可以只接收一些数据?

Ele*_*One 5 php ajax jquery json

我们假设这是在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
});
Run Code Online (Sandbox Code Playgroud)

而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();
Run Code Online (Sandbox Code Playgroud)

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

  • Ajaxcall.php执行,但$ _POST变量为空.
  • $ .ajax()调用的promise将被执行,但返回给它们的数据为空.

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

  • Ajaxcall.php执行并且$ _POST ['data'] ['txt']具有预期值,但$ _POST ['data'] ['ary']缺少某些值.
  • 执行$ .ajax()调用的promise并且data.ary具有期望值,但data.txt只是半个字符串(例如,"ok t").

这些情况可能吗?

G-N*_*get 4

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

数据包丢失和乱序传送在互联网上并不罕见,因为没有规则规定路由器必须转发所有数据包,但 TCP 会自动纠正这些问题。