摘要:接收前端傳值各種情況整理服務端代碼情況傳結果傳代碼結果傳結果傳結果傳個結果傳結果傳個結果傳個加個非空對象結果傳結果傳結果傳結果傳結果傳結果用抓包工具發現請求里面并不會發送無效的字段和,所以不是丟棄了,而是沒收到當傳的值是里的,會轉換成
PHP接收前端傳值各種情況整理 服務端代碼:
header("Access-Control-Allow-Origin:*"); var_dump($_POST); exit;情況 1) 傳null
$.post("http://xxxxx.xx/index.php", { "test": null }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(0) "" }2) 傳""
代碼:
$.post("http://xxxxx.xx/index.php", { "test": "" }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(0) "" }3) 傳"[]"
$.post("http://xxxxx.xx/index.php", { "test": "[]" }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(2) "[]" }4) 傳[]
$.post("http://xxxxx.xx/index.php", { "test": [] }, function(data, status) { console.log(data); });
結果:
array(0) { }5) 傳2個[]
$.post("http://xxxxx.xx/index.php", { "test": [], "test2": [] }, function(data, status) { console.log(data); });
結果:
array(0) { }6) 傳{}
$.post("http://xxxxx.xx/index.php", { "test": {} }, function(data, status) { console.log(data); });
結果:
array(0) { }7) 傳2個{}
$.post("http://xxxxx.xx/index.php", { "test": {}, "test2": {} }, function(data, status) { console.log(data); });
結果:
array(0) { }8) 傳1個{}加1個非空對象
$.post("http://xxxxx.xx/index.php", { "test": {}, "test2": {"a": 1} }, function(data, status) { console.log(data); });
結果:
array(1) { ["test2"]=> array(1) { ["a"]=> string(1) "1" } }9) 傳[{}]
$.post("http://xxxxx.xx/index.php", { "test": [{}] }, function(data, status) { console.log(data); });
結果:
array(0) { }10) 傳[[{}]]
$.post("http://xxxxx.xx/index.php", { "test": [[{}]] }, function(data, status) { console.log(data); });
結果:
array(0) { }11) 傳"nil"
$.post("http://xxxxx.xx/index.php", { "test": "nil" }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(3) "nil" }12) 傳0
$.post("http://xxxxx.xx/index.php", { "test": 0 }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(1) "0" }13) 傳"null"
$.post("http://xxxxx.xx/index.php", { "test": "null" }, function(data, status) { console.log(data); });
結果:
array(1) { ["test"]=> string(4) "null" }
用抓包工具發現
http請求里面并不會發送"無效的"字段——[]和{},所以不是PHP丟棄了,而是沒收到;
當傳的值是js里的null,會轉換成空字符串,http請求里面是test=,所以PHP接收到的test是個空字符串;
http協議不能表示值是什么類型,所以PHP只能什么都當做string
總結:PHP對于接收到的每一個值,會轉換成字符串變量
PHP對于接收到的,之所有會接收不到是因為被一系列規則過濾掉了
以上結論是在jQ和PHP7之下驗證的,其他環境不一定保證正確,之后可以試驗使用CURL發送數據試試。
TODO:[-] 用CURL發送POST測試
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99681.html
摘要:接收前端傳值各種情況整理服務端代碼情況傳結果傳代碼結果傳結果傳結果傳個結果傳結果傳個結果傳個加個非空對象結果傳結果傳結果傳結果傳結果傳結果用抓包工具發現請求里面并不會發送無效的字段和,所以不是丟棄了,而是沒收到當傳的值是里的,會轉換成 PHP接收前端傳值各種情況整理 服務端代碼: header(Access-Control-Allow-Origin:*); var_dump($_POS...
摘要:寫在前面金三銀四又到了一年一度的跳槽季相信大家都在準備自己面試筆記我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結方便自己復習詳細內容會在之后一一對應地補充上去有些在我的個人主頁筆記中也有相關記錄這里暫且放一個我的面試知識點目錄大家 寫在前面: 金三銀四, 又到了一年一度的跳槽季, 相信大家都在準備自己面試筆記, 我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結,方便自...
摘要:寫在前面金三銀四又到了一年一度的跳槽季相信大家都在準備自己面試筆記我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結方便自己復習詳細內容會在之后一一對應地補充上去有些在我的個人主頁筆記中也有相關記錄這里暫且放一個我的面試知識點目錄大家 寫在前面: 金三銀四, 又到了一年一度的跳槽季, 相信大家都在準備自己面試筆記, 我也針對自己工作中所掌握或了解的一些東西做了一個目錄總結,方便自...
日常開發中碰到就記一下, 如果有朋友愿意分享的 bug 可以在評論中討論啊 url 當中的參數有 ×tamp=1234567890這樣的字段會被轉義成xtamp=1234567890 這個不僅存在于頁面解析當中,當使用 curl 請求時拼接的參數有這種格式的也會發生轉義解決方法有兩個: 把 timestamp 這個參數放在 urlQuery 的最前面, ?timestamp=1234...
閱讀 2968·2023-04-25 19:45
閱讀 2690·2021-11-19 09:40
閱讀 690·2021-10-14 09:49
閱讀 2668·2021-09-30 09:47
閱讀 2201·2021-09-26 09:55
閱讀 1220·2021-09-22 16:01
閱讀 2809·2019-08-30 14:19
閱讀 706·2019-08-29 16:44