Axios中文文档,如何高效利用这一HTTP客户端库?

Axios中文文档

一、简介

Axios 是一个基于Promise的网络请求库,可以用于浏览器和node.js,它以其简洁的API、较小的包尺寸以及易于扩展的接口而广受欢迎,无论是在浏览器中创建XMLHttpRequests,还是在node.js中创建http请求,Axios都能轻松应对。

二、基本用例

发起一个GET请求

const axios = require('axios');
// 向给定ID的用户发起请求
axios.get('/user?ID=12345')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })
  .finally(function () {
    // 总是会执行
  });

支持async/await用法:

async function getUser() {
  try {
    const response = await axios.get('/user?ID=12345');
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}

发起一个POST请求

axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});

发起一个Multipart实体请求

axios.post('/user/12345/profile', {
  firstName: 'Fred',
  lastName: 'Flintstone',
  avatar: 'path/to/file.jpg' // 文件路径
}, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
})
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.log(error);
});

发起一个带有响应类型的请求

axios({
  method: 'get',
  url: '/user/12345/album',
  responseType: 'stream' // 设置响应类型为流
})
.then(function (response) {
  response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')); // 将响应数据写入文件
})
.catch(function (error) {
  console.log(error);
});

三、Axios API

配置项

参数名 类型 默认值 描述
url string 请求地址
method string 'get' HTTP方法(get, post, put, patch, delete, options, head)
baseURL string '' API的基础URL
transformRequest Array [func] 在向服务器发送请求之前,修改请求数据
transformResponse Array [func] 在写入响应数据之前,修改响应数据
headers Object {} 自定义请求头
params Object {} URL参数
paramsSerializer Function (params => encodeURIComponent(params)) URL参数序列化函数
data any {} 作为请求主体发送的数据
timeout number 0 请求超时时间(毫秒)
withCredentials boolean false 表示跨域请求时是否需要使用凭证
... ... ... ...

实例方法

axios.get(url[, config]): 发起一个GET请求。

axios.delete(url[, config]): 发起一个DELETE请求。

axios.head(url[, config]): 发起一个HEAD请求。

axios.options(url[, config]): 发起一个OPTIONS请求。

axios.post(url[, data[, config]]): 发起一个POST请求。

axios.put(url[, data[, config]]): 发起一个PUT请求。

axios.patch(url[, data[, config]]): 发起一个PATCH请求。

四、拦截器

Axios允许使用拦截器来处理请求或响应,拦截器分为请求拦截器和响应拦截器。

添加请求拦截器

axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

添加响应拦截器

axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

五、取消请求

可以使用CancelToken来取消请求。

const CancelToken = axios.CancelToken;
let cancel;
axios.get('/user/12345', {
  cancelToken: new CancelToken(function (c) {
    cancel = c;
  })
});
// 取消请求
cancel('请求已取消');

六、错误处理

Axios会抛出错误而不是返回错误,可以通过try...catch语句来捕获这些错误。

try {
  const response = await axios.get('/user/12345');
} catch (error) {
  console.error(error);
}

七、注意事项

Axios是基于Promise的,所以在CommonJS中使用require时为了获得TypeScript智能感知(autocomplete)/自动完成功能,请确保您的方法如下所示:

const axios = require('axios').default;

各位小伙伴们,我刚刚为大家分享了有关“axios中文文档”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/648152.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-11-16 18:20
Next 2024-11-16 18:24

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入