使用axios将具有多个值的参数的对象作为GET中的查询字符串传递
Passing an object with a parameter with multiple values as a query string in a GET using axios
在 GET 上将具有多个值的参数作为查询字符串传递是很常见的:
http://server/status?stat=a&stat=b
如何使用JS中的axios库创建这种类型的查询字符串?创建一个对象,其中参数名称是键,值是多个值的数组创建一个查询字符串:
http://server/status?stat[]=a&stat[]=b
服务器期望的格式不正确。这可以在 axios 中完成吗?
It is common to pass a parameter with multiple values as a query string on a GET
这绝不是一个标准。不同的语言,框架实现不同的解决方案。在 .
上查看此问题
Can this be done in axios?
In node.js, you can use the querystring module as follows:
var querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({ foo: 'bar'});
You can also use the qs library.
qs library 支持数组。
另一种方法是使用 Connect.
更新
QS库支持数组,但前提是参数后缀为[]
:
var paramsString = "q=URLUtils.searchParams&topic[]=api&topic[]=bar"
另外,URLSearchParams API 提供了一个 getAll()
方法:
var paramsString = "q=URLUtils.searchParams&topic=api"
var searchParams = new URLSearchParams(paramsString);
searchParams.getAll("topic"); // ["api"]
这在 IE 中不起作用,但 polyfill url-search-params 可用。
如果服务器期望使用 URLSearchParams API.:
获取给定名称的多个实例(不附加 []
数组标记)
var searchParams = new URLSearchParams();
searchParams.append('stat', 'a')
searchParams.append('stat', 'b')
axios.get('http://server/status', {params: searchParams});
会产生一个请求:
http://server/status?stat=a&stat=b
如另一个答案所述,它在 IE 中不起作用,但 polyfill url-search-params 可用。
在 GET 上将具有多个值的参数作为查询字符串传递是很常见的:
http://server/status?stat=a&stat=b
如何使用JS中的axios库创建这种类型的查询字符串?创建一个对象,其中参数名称是键,值是多个值的数组创建一个查询字符串:
http://server/status?stat[]=a&stat[]=b
服务器期望的格式不正确。这可以在 axios 中完成吗?
It is common to pass a parameter with multiple values as a query string on a GET
这绝不是一个标准。不同的语言,框架实现不同的解决方案。在 .
上查看此问题Can this be done in axios?
In node.js, you can use the querystring module as follows:
var querystring = require('querystring'); axios.post('http://something.com/', querystring.stringify({ foo: 'bar'});
You can also use the qs library.
qs library 支持数组。
另一种方法是使用 Connect.
更新
QS库支持数组,但前提是参数后缀为[]
:
var paramsString = "q=URLUtils.searchParams&topic[]=api&topic[]=bar"
另外,URLSearchParams API 提供了一个 getAll()
方法:
var paramsString = "q=URLUtils.searchParams&topic=api" var searchParams = new URLSearchParams(paramsString); searchParams.getAll("topic"); // ["api"]
这在 IE 中不起作用,但 polyfill url-search-params 可用。
如果服务器期望使用 URLSearchParams API.:
获取给定名称的多个实例(不附加[]
数组标记)
var searchParams = new URLSearchParams(); searchParams.append('stat', 'a') searchParams.append('stat', 'b') axios.get('http://server/status', {params: searchParams});
会产生一个请求:
http://server/status?stat=a&stat=b
如另一个答案所述,它在 IE 中不起作用,但 polyfill url-search-params 可用。