axios get请求带参数_JS实现前端调用后端get请求在url后拼接参数

cc33d4ec90ee32a0677f44db9a10a7c3.png

前端开发中,经常会遇到在URL后拼接参数的需要,而我最近在做项目的时候就遇到了,所以特此把自己的实现方式做了一个总结记录下来,也为其他需要的小伙伴做个参考。前端在调用后端GET请求时,url的接口名称和参数一般是字符串拼接的方式,为了避免字符串拼接时key值对应的value为null对后端的判断造成干扰,前端可以处理为value为null时该参数的key值省略不传。

baf3b327e85b67907cc13a30756ea3ea.png

以下是我自己封装了一个获取参数的方法,在vue的methods方法中:

/**
 * @function 参数拼接
 * @param {object} obj 只支持非嵌套的对象
 * @returns {string}
 * @author 码云笔记 2020-4-24
 */
params(obj:any) {
  let result = '';
  let item;
  for (item in obj) {
    if (obj[item] && String(obj[item])) {
      result += `&${item}=${obj[item]}`;
    }
  }
  if (result) {
    result = '&' + result.slice(1);
  }
  return result;
}

如何使用呢?假如我们参数是这个样子的:

const obj = {
  name: '码云笔记',
  value: 'mybj123',
  msg: ''
}

然后在我们需要的地方使用上面封装好的参数方法

const url = `/get/info/${this.params(obj)}`;
console.log(url);

最终在浏览器中显示的URL就是

https://域名/get/info/&name=码云笔记&value=mybj123
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端调用后端不同接口的微服务时,可以使用 axios 库进行请求的发送和处理。以下是一个简单的示例: ```js // 引入 axios 库 import axios from 'axios' // 定义基础 URL const baseUrl = 'http://localhost:3000' // 发送请求的函数 function request(method, url, data) { // 拼接请求地址 url = baseUrl + url // 发送请求 return axios({ method: method, url: url, data: data }) .then(response => { // 处理响应数据 return response.data }) .catch(error => { // 处理错误 console.log(error) return null }) } // 调用不同接口的示例 request('get', '/api/user') .then(data => { console.log(data) }) request('post', '/api/user', { name: 'Alice', age: 18 }) .then(data => { console.log(data) }) request('put', '/api/user/1', { name: 'Bob', age: 20 }) .then(data => { console.log(data) }) request('delete', '/api/user/1') .then(data => { console.log(data) }) ``` 在这个示例中,我们首先定义了基础 URL 为 `http://localhost:3000`,然后定义了一个 `request` 函数,用来发送请求。该函数接受三个参数,分别是请求方法、请求地址和请求数据。在函数中,我们使用 axios 库发送请求,然后处理响应数据和错误信息,并返回处理后的数据。 在调用不同的接口时,我们只需要调用 `request` 函数,并传入相应的参数即可。例如,在调用 `/api/user` 接口时,只需要调用 `request('get', '/api/user')` 即可。其他接口的调用方式类似。 需要注意的是,在微服务架构中,不同的接口可能会由不同的服务提供。因此,我们需要根据实际情况在基础 URL 中加入相应的服务地址前缀,例如 `http://user-service:3000`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值