使用 axios 将带有多个值的参数的对象作为 GET 中的查询字符串传递

fla*_*rix 4 javascript query-string axios

在 GET 上将具有多个值的参数作为查询字符串传递是很常见的:

http://server/status?stat=a&stat=b
Run Code Online (Sandbox Code Playgroud)

如何使用 JS 中的 axios 库创建这种类型的查询字符串?创建一个对象,其中参数名称是键,值是多个值的数组,从而创建一个查询字符串:

http://server/status?stat[]=a&stat[]=b
Run Code Online (Sandbox Code Playgroud)

这与服务器期望的格式不正确。这可以在 axios 中完成吗?

Joh*_*cke 5

如果服务器期望获取具有给定名称的多个实例(不[]附加数组标记),则可以使用URLSearchParams API获取:

var searchParams = new URLSearchParams();
searchParams.append('stat', 'a')
searchParams.append('stat', 'b')
axios.get('http://server/status', {params: searchParams});
Run Code Online (Sandbox Code Playgroud)

会产生一个请求:

http://server/status?stat=a&stat=b
Run Code Online (Sandbox Code Playgroud)

正如另一个答案中所述,它在 IE 中不起作用,但可以使用polyfill url-search-params 。