前端给后台传数组,是怎么传的,我的做法是将数组拼接成字符串,例如[1,2,3]变成'1,2,3',有方便或者优雅的方式么

2019-11-19 18:02:06 +08:00
 wuwudeqi
5050 次点击
所在节点    前端开发
9 条回复
wangxiaoaer
2019-11-19 18:04:03 +08:00
当然是看后端实现了,我们现在前台 Post 一律 json 对象。
g1475117007
2019-11-19 18:11:56 +08:00
stringify
passerbytiny
2019-11-19 18:13:29 +08:00
HTTP 的通用规范中,参数并不是 key-value 关系图的模式,而是 key-value 列表的模式,一个 key 可以用多次,正好用来传数组。举个例子,你可以用 a=1&a=2&a=3 来传递 a[] = {1,2,3}。

但是,具体怎么传,完全取决于后台。
littleylv
2019-11-19 18:17:36 +08:00
$.post('url', {'a': 'aaa', 'b': [1,2,3]})
'1,2,3'不是蛋疼么,后端还要解析一遍
wuwudeqi
2019-11-19 18:22:41 +08:00
@littleylv 老哥 像你这样后端的 b 数组会 null 啊
DOLLOR
2019-11-19 18:29:36 +08:00
array |> stringifyify |> encodeURIComponent
NerverLibis
2019-11-19 18:30:02 +08:00
不传,直接读写数据库
littleylv
2019-11-19 18:33:40 +08:00
@wuwudeqi #5 其他语言我不知道,PHP 是可以

```php
<?php
if ($_POST) {
print_r($_POST);
die();
}
?>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<div id="a"></div>
<script type="text/javascript">
$(function(){
$.post('b.php', {'a': 'aaa', 'b': [1, 2, 3]}, function(data){
$('#a').text(data);
});
});
</script>
```

打印 Array ( [a] => aaa [b] => Array ( [0] => 1 [1] => 2 [2] => 3 ) )
cydleadingx
2019-11-19 18:45:32 +08:00
为什么不直接 json

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/621121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX