vue中get请求传参是数组,变为字符串

问题:vue项目中,用axios封装请求数据时,get请求传递参数为数组时,get拼接url并不能把参数正确的传递过去,
解决:get传参需要前面自己转一下传参的格式

最初错误传参

let provinces= ['1', '2', '3']
axios.get('/gateway/xxx', {
    params: {
      ID: 001,
      provincesData: provinces,
    }
  })
// 上面的请求是 '.../user?ID=001&provincesData[]=1&provincesData[]=2&provincesData[]=3
get直接传数组就会有这种情况

转换传参格式

axios.get('/gateway/xxx', {
    params: {
      ID: 001,
      provincesData: provinces+ '',
    }
  })
// 在参数后面加上( + ''),即可把数组变成字符串
// 请求变成 '.../user?ID=001&provincesData=1,2,3

JavaScript中将数组变成字符串:数组[arr] + ’ ’

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在Vue,可以使用axios库或者Vue-resource来发送get请求。无论使用哪种库,传递数组的方法是一样的。 1. 使用axios发送get请求: ``` import axios from 'axios'; axios.get('/api/data', { params: { arr: [1, 2, 3] //将数组作为参数传递给params对象的arr属性 } }).then(response => { console.log(response.data); }).catch(error => { console.log(error); }); ``` 2. 使用Vue-resource发送get请求: ``` import Vue from 'vue'; import VueResource from 'vue-resource'; Vue.use(VueResource); Vue.http.get('/api/data', { params: { arr: [1, 2, 3] //将数组作为参数传递给params对象的arr属性 } }).then(response => { console.log(response.body); }).catch(error => { console.log(error); }); ``` 上述代码,将数组作为参数传递给`params`对象的`arr`属性,当发送get请求时,会自动将数组转换为`arr=1&arr=2&arr=3`的形式进行传输。在服务器端接收到请求时,可以通过获取对应参数的值来获取传递数组。 ### 回答2: 在Vue,我们可以使用axios库来进行网络请求。当我们需要传递数组作为GET请求的参数时,可以通过拼接URL的方式将数组传递后端。 首先,我们需要将数组转换为字符串形式。可以使用join()方法将数组元素连接为一个字符串,同时在每个元素之间添加逗号分隔符。例如,如果数组为[1, 2, 3],可以通过arr.join(',')得到"1,2,3"。 接下来,使用axios库发送GET请求,可以通过在URL添加参数的方式传递数组。例如,假设我们要传递名为"numbers"的数组参数,可以通过以下方式构建URL: ```javascript axios.get('/api/data', { params: { numbers: arr.join(',') } }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); ``` 在上述代码,我们通过params选项传递参数,并将数组转换为字符串形式后作为numbers参数的值。在后端接收到请求时,可以通过解析URL参数来得到传递数组。 总结起来,要在Vue通过GET请求传递数组,我们需要将数组转换为字符串,并在URL以参数的形式传递后端。 ### 回答3: 在Vue进行get请求传递数组参数,可以使用以下两种方式: 1. 通过在URL以查询字符串的形式传递数组参数。示例代码如下: ```javascript // 定义要传递数组参数 const arr = [1, 2, 3]; // 使用axios进行get请求 axios.get('/api/path', { params: { arr: arr.join(',') // 将数组转换为逗号分隔的字符串 } }) .then(response => { // 处理请求成功的逻辑 }) .catch(error => { // 处理请求失败的逻辑 }); ``` 2. 通过在URL以RESTful风格传递数组参数。示例代码如下: ```javascript // 定义要传递数组参数 const arr = [1, 2, 3]; // 构建URL,并将数组参数拼接到路径部分 const url = `/api/path/${arr.join('/')}`; // 使用axios进行get请求 axios.get(url) .then(response => { // 处理请求成功的逻辑 }) .catch(error => { // 处理请求失败的逻辑 }); ``` 以上两种方式都可以用于在Vue进行get请求传递数组参数。在服务器端接收到请求时,可以通过获取URL的参数值解析出对应的数组参数进行处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值