天天看点

每日分享- 前端 Axios 拦截器常用的请求方法别名有哪些?

作者:理工男二号

Axios 拦截器中常用的请求方法别名主要包括以下几个:

1 axios.request(config):该方法是发送所有类型的请求的基础方法,可以传递一个配置对象作为参数,配置对象包含请求的 URL、请求方法、请求头、请求体等信息。这个方法可以被拦截器拦截,因此我们可以在请求发送前或响应接收后对请求和响应进行处理。例如,我们可以在请求头中添加 token:

axios.interceptors.request.use(config => {
  config.headers.Authorization = `Bearer ${getToken()}`
  return config
})           

2 axios.get(url[, config]):该方法发送一个 GET 请求,可以传递一个 URL 和一个可选的配置对象。例如,发送一个获取用户信息的请求:

axios.get('/api/user', {
  params: {
    userId: 123
  }
})           

3 axios.delete(url[, config]):该方法发送一个 DELETE 请求,可以传递一个 URL 和一个可选的配置对象。例如,发送一个删除用户的请求:

axios.delete('/api/user/123')           

4 axios.head(url[, config]):该方法发送一个 HEAD 请求,可以传递一个 URL 和一个可选的配置对象。例如,发送一个获取网页标题的请求:

axios.head('https://www.example.com')           

5 axios.options(url[, config]):该方法发送一个 OPTIONS 请求,可以传递一个 URL 和一个可选的配置对象。例如,发送一个获取支持的请求方法的请求:

axios.options('/api/user')           

6 axios.post(url[, data[, config]]):该方法发送一个 POST 请求,可以传递一个 URL、请求体数据和一个可选的配置对象。例如,发送一个添加用户的请求:

axios.post('/api/user', {
  name: 'John',
  age: 18
})           

7 axios.put(url[, data[, config]]):该方法发送一个 PUT 请求,可以传递一个 URL、请求体数据和一个可选的配置对象。例如,发送一个更新用户信息的请求:

axios.put('/api/user/123', {
  name: 'John',
  age: 19
})           

8 axios.patch(url[, data[, config]]):该方法发送一个 PATCH 请求,可以传递一个 URL、请求体数据和一个可选的配置对象。例如,发送一个更新用户部分信息的请求:

axios.patch('/api/user/123', {
  age: 20
})           

这段代码表示发送一个 PATCH 请求到 /api/user/123,请求体数据为 { age: 20 },使用默认的配置。可以通过第二个可选参数 data 传递请求体数据,通过第三个可选参数 config 传递请求的配置选项,例如:

axios.patch('/api/user/123', { age: 20 }, {
  headers: {
    'Content-Type': 'application/json'
  }
})           

这段代码表示发送一个 PATCH 请求到 /api/user/123,请求体数据为 { age: 20 },使用自定义的请求头 { 'Content-Type': 'application/json' }。

9 axios.all(iterable):该方法可以同时发送多个请求,接收一个可迭代的请求数组或对象,并返回一个 Promise,当所有请求都成功响应后,Promise 才会 resolve,响应数据以数组形式返回。例如,同时获取多个用户信息:

axios.all([
  axios.get('/api/user/1'),
  axios.get('/api/user/2'),
  axios.get('/api/user/3')
]).then(axios.spread((user1, user2, user3) => {
  console.log(user1.data)
  console.log(user2.data)
  console.log(user3.data)
}))           

10 axios.spread(callback):该方法用于在 axios.all() 中的 Promise resolve 后,将响应的数据拆分为单独的参数传递给回调函数。例如,在上面的例子中,我们使用了 axios.spread() 方法将响应数据拆分为三个参数。

11 axios.create([config]):该方法用于创建一个新的 axios 实例,可以传递一个配置对象作为参数,该实例具有与 axios 一样的 API,但可以单独配置拦截器、默认配置等选项。例如,我们可以创建一个带有默认 base URL 和拦截器的 axios 实例:

const instance = axios.create({
  baseURL: 'https://api.example.com/',
  headers: {
    'X-Requested-With': 'XMLHttpRequest'
  }
})
instance.interceptors.request.use(config => {
  config.headers.Authorization = `Bearer ${getToken()}`
  return config
})           

以上就是常用的 Axios 请求方法别名及其使用举例。通过拦截器和这些方法的灵活组合,我们可以很方便地实现请求和响应的预处理、日志记录、错误处理等功能。

继续阅读