请教一个 JS 传参问题

2019-06-13 11:29:51 +08:00
 Colorful

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

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

2116 次点击
所在节点    前端开发
4 条回复
ccyu220
2019-06-13 11:32:39 +08:00
1、循环
2、解构赋值
Colorful
2019-06-13 11:33:30 +08:00
@ccyu220
怎么 解构赋值啊,没太理解
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
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 里了

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

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

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

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

© 2021 V2EX