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

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

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

    但是,具体怎么传,完全取决于后台。
    littleylv
        4
    littleylv  
       2019-11-19 18:17:36 +08:00
    $.post('url', {'a': 'aaa', 'b': [1,2,3]})
    '1,2,3'不是蛋疼么,后端还要解析一遍
    wuwudeqi
        5
    wuwudeqi  
    OP
       2019-11-19 18:22:41 +08:00
    @littleylv 老哥 像你这样后端的 b 数组会 null 啊
    DOLLOR
        6
    DOLLOR  
       2019-11-19 18:29:36 +08:00 via Android
    array |> stringifyify |> encodeURIComponent
    NerverLibis
        7
    NerverLibis  
       2019-11-19 18:30:02 +08:00
    不传,直接读写数据库
    littleylv
        8
    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
        9
    cydleadingx  
       2019-11-19 18:45:32 +08:00
    为什么不直接 json
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   989 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:09 · PVG 04:09 · LAX 13:09 · JFK 16:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.