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 请求方法别名及其使用举例。通过拦截器和这些方法的灵活组合,我们可以很方便地实现请求和响应的预处理、日志记录、错误处理等功能。