header('Access-Control-Allow-Origin:*'); var_dump($_POST); exit;
$.post('http://xxxxx.xx/index.php', { "test": null }, function(data, status) { console.log(data); });
結果:php
array(1) { ["test"]=> string(0) "" }
代碼:前端
$.post('http://xxxxx.xx/index.php', { "test": '' }, function(data, status) { console.log(data); });
結果:工具
array(1) { ["test"]=> string(0) "" }
$.post('http://xxxxx.xx/index.php', { "test": '[]' }, function(data, status) { console.log(data); });
結果:post
array(1) { ["test"]=> string(2) "[]" }
$.post('http://xxxxx.xx/index.php', { "test": [] }, function(data, status) { console.log(data); });
結果:測試
array(0) { }
$.post('http://xxxxx.xx/index.php', { "test": [], "test2": [] }, function(data, status) { console.log(data); });
結果:code
array(0) { }
$.post('http://xxxxx.xx/index.php', { "test": {} }, function(data, status) { console.log(data); });
結果:對象
array(0) { }
$.post('http://xxxxx.xx/index.php', { "test": {}, "test2": {} }, function(data, status) { console.log(data); });
結果:字符串
array(0) { }
$.post('http://xxxxx.xx/index.php', { "test": {}, "test2": {"a": 1} }, function(data, status) { console.log(data); });
結果:string
array(1) { ["test2"]=> array(1) { ["a"]=> string(1) "1" } }
$.post('http://xxxxx.xx/index.php', { "test": [{}] }, function(data, status) { console.log(data); });
結果:it
array(0) { }
$.post('http://xxxxx.xx/index.php', { "test": [[{}]] }, function(data, status) { console.log(data); });
結果:
array(0) { }
$.post('http://xxxxx.xx/index.php', { "test": 'nil' }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(3) "nil" }
$.post('http://xxxxx.xx/index.php', { "test": 0 }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(1) "0" }
$.post('http://xxxxx.xx/index.php', { "test": 'null' }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(4) "null" }
用抓包工具發現
"無效的"
字段——[]和{},因此不是PHP丟棄了,而是沒收到;null
,會轉換成空字符串,http請求裏面是test=
,因此PHP接收到的test是個空字符串;以上結論是在jQ和PHP7之下驗證的,其餘環境不必定保證正確,以後能夠試驗使用CURL發送數據試試。