【发布时间】:2019-03-26 13:40:48
【问题描述】:
我正在使用 vue-resource's $http.get 通过以下方式查询 REST API:
this.$http.get('/api', {
params: {
id: [1,2,3],
},
});
这会产生查询
/api?id[]=1&id[]=2&id[]=3
但我的端点期望
/api?id=1&id=2&id=3
有没有办法告诉vue-resource 像这样对多个参数进行编码?
我想避免构建自己的查询字符串,但这是我能想到的替代方案。
【问题讨论】:
-
我很困惑。如果您的端点路由是“/api”,那么参数将自动传递。如果您的端点是“/api/:id1/:id2/:id3”,您应该发出这样的请求
this.$http.get(`/api/${id1}/${id2}/${id3}`)。在查询中也有相同的变量会导致错误。 -
我没有说
/api/:id1/:id2/:id3,我说/api?id=1&id=2&id=3。引用维基百科,“While there is no definitive standard, most web frameworks allow multiple values to be associated with a single field”。我想知道vue-resource是否可以满足将多个值传递给同一参数的不同标准。id[]类似于 PHP 的做法。 Mojolicious 的做法不同。欢迎来到狂野西部。 :-) -
你说 /api?id=1&id=2&id=3 将转换为动态路由 /api/:id1/:id2/:id3。也许我错过了什么,但我正在努力帮助你
-
我不确定这种到动态路由的转换是从哪里来的。也许您正在考虑另一个后端 Web 框架的行为,而不是我正在使用的那个?跨度>
标签: vue.js vue-resource