首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wuwudeqi
V2EX  ›  前端开发

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

  •  
  •   wuwudeqi · 63 天前 · 1240 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 回复  |  直到 2019-11-19 18:45:32 +08:00
    wangxiaoaer
        1
    wangxiaoaer   63 天前 via Android
    当然是看后端实现了,我们现在前台 Post 一律 json 对象。
    g1475117007
        2
    g1475117007   63 天前
    stringify
    passerbytiny
        3
    passerbytiny   63 天前   ♥ 1
    HTTP 的通用规范中,参数并不是 key-value 关系图的模式,而是 key-value 列表的模式,一个 key 可以用多次,正好用来传数组。举个例子,你可以用 a=1&a=2&a=3 来传递 a[] = {1,2,3}。

    但是,具体怎么传,完全取决于后台。
    littleylv
        4
    littleylv   63 天前
    $.post('url', {'a': 'aaa', 'b': [1,2,3]})
    '1,2,3'不是蛋疼么,后端还要解析一遍
    wuwudeqi
        5
    wuwudeqi   63 天前
    @littleylv 老哥 像你这样后端的 b 数组会 null 啊
    DOLLOR
        6
    DOLLOR   63 天前 via Android
    array |> stringifyify |> encodeURIComponent
    NerverLibis
        7
    NerverLibis   63 天前
    不传,直接读写数据库
    littleylv
        8
    littleylv   63 天前
    @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
        9
    cydleadingx   63 天前
    为什么不直接 json
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2718 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 08:21 · PVG 16:21 · LAX 00:21 · JFK 03:21
    ♥ Do have faith in what you're doing.