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

请教一个 JS 传参问题

  •  
  •   Colorful · 2019-06-13 11:29:51 +08:00 · 2192 次点击
    这是一个创建于 1997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假如说一个数组 [{set:"aaa",val:"111"},{set:"bbb",val:"222"}]

    传接口的时候,如何改成 get 和 post 同时兼职?

    4 条回复    2019-06-13 17:56:24 +08:00
    ccyu220
        1
    ccyu220  
       2019-06-13 11:32:39 +08:00
    1、循环
    2、解构赋值
    Colorful
        2
    Colorful  
    OP
       2019-06-13 11:33:30 +08:00
    @ccyu220
    怎么 解构赋值啊,没太理解
    c4f36e5766583218
        3
    c4f36e5766583218  
       2019-06-13 17:35:57 +08:00
    ```传接口的时候,如何改成 get 和 post```你这问的是 http 传参数问题吧。。和标题 js 传参有点出入啊。
    你想要 get 也支持就放 URL 参数里呀。像这样,这个链接可以访问的,你点下:
    https://httpbin.org/get?a=[{set:%22aaa%22,val:%22111%22},{set:%22bbb%22,val:%22222%22}]
    ps:(没币了,币多的热心人帮忙点个赞,这个放几天,有币就不放了)

    ```JavaScript
    jQuery(function ($) {
    for (let type of ["GET", "POST"]) {
    $.ajax({
    async: false,
    data: {
    name: '[{set:"aaa",val:"111"},{set:"bbb",val:"222"}]'
    },
    type: type,
    url: "https://httpbin.org/anything"
    });
    }
    });
    ```
    c4f36e5766583218
        4
    c4f36e5766583218  
       2019-06-13 17:56:24 +08:00
    不好意思,我把它当做字符串理解了。。。你可以试下这两个函数
    $.param({a: [2, 3, 4]}, true); //a=2&a=3&a=4 需要数组内是基本数据类型
    $.param({a: [2, 3, 4]}, false); //a%5B%5D=2&a%5B%5D=3&a%5B%5D=4 参数名不友好

    其实有很多形式,不知道你后端接收是怎样的。比如
    httpbin.org/get?a=1&a=2 // {"a": ["1", "2"]} 后端接收到的真的是个数组
    httpbin.org/get?a=[%221%22:%222%22] // {"a": '["1":"2"]'} 后端接收到的是 json 化的
    再要么就是 jQuery.param 里提到那样的,分不同 key 里了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2858 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:45 · PVG 11:45 · LAX 19:45 · JFK 22:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.