我用axios创建了一个get请求:
this.$axios.get('/cidade/',{
params: {
q: result,
}
})
.then((response) => {
this.cidades = response.data;
})
.catch(function (error) {
// handle error
// eslint-disable-next-line
console.log(error);
})
.then(function () {
// always executed
});
但我的结果是一个数组[123asdas1,asdasd2312],当axios执行请求时,他创建了该url:
http://localhost:8081/cidade/?q[]=5b9cfd0170607a2e968b0a1e&q[]=5b9cfd0170607a2e968b0a1d
所以可以从q param中删除[]吗?怎么样?
TKS
在编写查询字符串时,其中一个字段具有多个值(即,如果它是一个数组),那么没有标准说明它必须如何在查询字符串中编码,但是大多数Web服务器都接受以下语法:
http://localhost:8081/cidade/?q[]=value1&q[]=value2
这就是axios默认的原因。检查您的Web服务器以查看它是否正确地将参数作为数组读取。
如果您想强制它以其他方式编码,只需将数组转换为您想要的任何格式的字符串,并将其作为单个值发送:
this.$axios.get('/cidade/', {
params: {
q: JSON.stringify(result)
}
})
http://localhost:8081/cidade/?q=[value1,value2]
([
和]
字符可能是percent-encoded。)
通常,此语法无法区分字符串"[value1,value2]"
和数组[value1, value2]
,因此Web服务器必须选择其中一个。同样,这完全取决于您的Web服务器。