V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
wuwudeqi

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

  •  
  •   wuwudeqi · Nov 19, 2019 · 5787 views
    This topic created in 2363 days ago, the information mentioned may be changed or developed.
    9 replies    2019-11-19 18:45:32 +08:00
    wangxiaoaer
        1
    wangxiaoaer  
       Nov 19, 2019 via Android
    当然是看后端实现了,我们现在前台 Post 一律 json 对象。
    g1475117007
        2
    g1475117007  
       Nov 19, 2019
    stringify
    passerbytiny
        3
    passerbytiny  
       Nov 19, 2019   ❤️ 1
    HTTP 的通用规范中,参数并不是 key-value 关系图的模式,而是 key-value 列表的模式,一个 key 可以用多次,正好用来传数组。举个例子,你可以用 a=1&a=2&a=3 来传递 a[] = {1,2,3}。

    但是,具体怎么传,完全取决于后台。
    U7Q5tLAex2FI0o0g
        4
    U7Q5tLAex2FI0o0g  
       Nov 19, 2019
    $.post('url', {'a': 'aaa', 'b': [1,2,3]})
    '1,2,3'不是蛋疼么,后端还要解析一遍
    wuwudeqi
        5
    wuwudeqi  
    OP
       Nov 19, 2019
    @littleylv 老哥 像你这样后端的 b 数组会 null 啊
    AV1
        6
    AV1  
       Nov 19, 2019 via Android
    array |> stringifyify |> encodeURIComponent
    NerverLibis
        7
    NerverLibis  
       Nov 19, 2019
    不传,直接读写数据库
    U7Q5tLAex2FI0o0g
        8
    U7Q5tLAex2FI0o0g  
       Nov 19, 2019
    @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  
       Nov 19, 2019
    为什么不直接 json
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1066 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 18:26 · PVG 02:26 · LAX 11:26 · JFK 14:26
    ♥ Do have faith in what you're doing.