摘要:接收前端传值各种情况整理服务端代码情况传结果传代码结果传结果传结果传个结果传结果传个结果传个加个非空对象结果传结果传结果传结果传结果传结果用抓包工具发现请求里面并不会发送无效的字段和,所以不是丢弃了,而是没收到当传的值是里的,会转换成
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测试
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29744.html
摘要:接收前端传值各种情况整理服务端代码情况传结果传代码结果传结果传结果传个结果传结果传个结果传个加个非空对象结果传结果传结果传结果传结果传结果用抓包工具发现请求里面并不会发送无效的字段和,所以不是丢弃了,而是没收到当传的值是里的,会转换成 PHP接收前端传值各种情况整理 服务端代码: header(Access-Control-Allow-Origin:*); var_dump($_POS...
摘要:写在前面金三银四又到了一年一度的跳槽季相信大家都在准备自己面试笔记我也针对自己工作中所掌握或了解的一些东西做了一个目录总结方便自己复习详细内容会在之后一一对应地补充上去有些在我的个人主页笔记中也有相关记录这里暂且放一个我的面试知识点目录大家 写在前面: 金三银四, 又到了一年一度的跳槽季, 相信大家都在准备自己面试笔记, 我也针对自己工作中所掌握或了解的一些东西做了一个目录总结,方便自...
摘要:写在前面金三银四又到了一年一度的跳槽季相信大家都在准备自己面试笔记我也针对自己工作中所掌握或了解的一些东西做了一个目录总结方便自己复习详细内容会在之后一一对应地补充上去有些在我的个人主页笔记中也有相关记录这里暂且放一个我的面试知识点目录大家 写在前面: 金三银四, 又到了一年一度的跳槽季, 相信大家都在准备自己面试笔记, 我也针对自己工作中所掌握或了解的一些东西做了一个目录总结,方便自...
日常开发中碰到就记一下, 如果有朋友愿意分享的 bug 可以在评论中讨论啊 url 当中的参数有 ×tamp=1234567890这样的字段会被转义成xtamp=1234567890 这个不仅存在于页面解析当中,当使用 curl 请求时拼接的参数有这种格式的也会发生转义解决方法有两个: 把 timestamp 这个参数放在 urlQuery 的最前面, ?timestamp=1234...
阅读 2735·2021-10-14 09:42
阅读 753·2021-10-11 10:57
阅读 698·2019-08-30 15:54
阅读 1873·2019-08-30 13:50
阅读 1658·2019-08-30 11:19
阅读 894·2019-08-29 12:38
阅读 1397·2019-08-26 11:51
阅读 1354·2019-08-26 10:48