axios的基本使用

Axios是一个流行的JavaScript库,用于发起HTTP请求。它支持GET、POST等多种请求方法,并允许设置各种配置,如baseURL、headers和timeout。可以创建实例以定制特定的配置,例如不同的baseURL。此外,Axios还提供了请求和响应拦截器功能,用于在发送请求或接收响应前进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

axios

安装axios
npm install axios
使用时先导入
import axios from ‘axios’

axios请求方式

axios支持多种请求方式
axios(config)
axios.request(config)
axios.get(url[, config])
axios.head(url, [, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])

有时候我们可能同时发送两个请求
使用axios.all, 可以放入多个请求的数组.
axios.all([]) 返回的结果是一个数组,使用 axios.spread 可将数组 [res1,res2] 展开为 res1, res2

常见的配置选项

请求地址

  • url: ‘/user’
    请求类型
  • method: ‘get’
    请求路径
  • baseURL: ‘http://www.mt.con/api’
    请求前的数据处理
  • transformResponse: [function(data){}]
    自定义的请求头
  • headers:{’ x-Requested-With’: 'XMLHttpRequst '}
    URL查询对象
  • params:{id: 12}
    查询对象序列化函数
  • paramsSerializer: function(params){}
    requset body
  • data: { key: ‘aa’}
    超时设置
  • timeout: 1000

axios的创建实例

为什么要创建axios的实例呢

  • 当我们从axios模块中导入对象时 使用的实例是默认的实例
  • 当给该实例设置一些默认配置时 这些配置就被固定下来了
  • 但是后续开发中 某些配置可能会不太一样
  • 比如某些请求需要使用特定的baseURL或者timeout
  • 这个时候 我们就可以创建新的实例 并且传入属于该实例的配置信息
const instance = axios.create({
	baseURL: '....'
})

instance.post('/...', {
	name: 'kobe',
	age: 24
}).then(res => {
	console.log('res: ', res)
})

请求与响应拦截器

axios的也可以设置拦截器:拦截每次请求和响应
axios.interceptors.request.use(请求成功拦截, 请求失败拦截)
axios.interceptors.response.use(响应成功拦截, 响应失败拦截)

axios.interceptors.request.use((config) => {
	console.log('请求成功拦截')
	return config
}, err => {
	console.log('请求失败拦截')
	return err
})

axios.interceptors.response.use((res) => {
	console.log('响应成功拦截')
	return res.data
}, err => {
	console.log('响应失败拦截')
})

axios请求封装(基础版)

class MyRequest {
	constructor(baseURL, timeout=10000) {
		this.instance = axios.create({
			baseURL,
			timeout
		})
	}
	request(config) {
		return new Promise((resolve, reject) => {
			this.instance.request(config).then(res => {
				resolve(res.data)
			}).catch(err => {
				reject(err)
			})
		})
	}
	get(config) {
		return this.request({ ...config, method: 'get'})
	}
	post(config){
		return this.request({ ...config, method: 'post'})
	}
}

export default new MyRequest('url...')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_聪明勇敢有力气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值