讓我們假設這是jQuery中執行:如果發送/接收jQuery AJAX數據,是否有可能只接收一些數據?
$.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()調用的承諾,但返回給它們的數據爲空。
不過,我真的很擔心這樣的情形這樣的:
- Ajaxcall.php執行和$ _ POST [ '數據'] [ 'TXT']已預期值,但$ _ POST [ 'data'] ['ary']缺少一些值。
- 執行$ .ajax()調用的承諾,並且data.ary具有期望值,但data.txt只有一半字符串(例如「ok t」)。
這些情況可能嗎?
這意味着PHP代碼做錯了 - 要麼錯誤地編碼錯誤的JSON編碼(但更可能不希望數據)或返回成功標題並提前終止流(應該產生無效的JSON)。 jQuery AJAX成功的回調函數* * *在所有數據被傳輸後調用成功*。 – user2246674
是的 - 打開瀏覽器調試器網絡面板,並查看回應。查看回復是否格式不正確或不完整。 –