js axios

js axios

一、axios简介

js axios

1.1 什么是axios

axios是一个基于Promise的HTTP客户端,用于浏览器和node.js的简单封装。它是一个功能强大且易于使用的JavaScript库,可以在浏览器和服务器端发送HTTP请求,处理响应数据。axios支持各种平台,能有效地处理异步请求。

1.2 axios的特点

axios具有以下特点:

  1. 支持浏览器和node.js。
  2. 使用Promise进行异步操作。
  3. 支持拦截请求和响应。
  4. 支持取消请求。
  5. 提供了丰富的参数配置。
  6. 支持多种请求方法。

二、使用axios发送HTTP请求

2.1 安装axios

使用npm安装axios,命令如下:

npm install axios

2.2 创建axios实例

在使用axios发送请求之前,我们需要先创建一个axios的实例。我们可以使用axios.create方法来创建实例,示例代码如下:

const axios = require('axios');

// 创建axios实例
const instance = axios.create({
  baseURL: 'http://api.example.com',
  timeout: 5000
});

在上述代码中,我们通过axios.create方法创建了一个实例。可以设置一些默认的配置项,例如baseURL和timeout。baseURL表示请求的基础URL,timeout表示请求超时时间。

2.3 发送GET请求

使用axios发送GET请求非常简单。我们可以使用实例的get方法来发送GET请求,示例代码如下:

// 发送GET请求
instance.get('/user', {
  params: {
    id: 1,
    name: 'John'
  }
})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

在上述代码中,我们通过实例的get方法发送了一个GET请求,请求的URL是/user。我们可以通过向第二个参数传递一个对象来设置请求参数,例如设置查询参数。

2.4 发送POST请求

发送POST请求也非常简单。我们可以使用实例的post方法来发送POST请求,示例代码如下:

// 发送POST请求
instance.post('/user', {
  id: 1,
  name: 'John'
})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

在上述代码中,我们通过实例的post方法发送了一个POST请求,请求的URL是/user。我们可以通过向第二个参数传递一个对象来设置请求参数,例如传递请求体数据。

三、配置axios

3.1 基础配置

我们可以在创建axios实例时设置一些基础配置。例如,我们可以设置baseURL、timeout等参数。示例代码如下:

const instance = axios.create({
  baseURL: 'http://api.example.com',
  timeout: 5000
});

在上述代码中,设置了baseURL为http://api.example.com,超时时间为5000毫秒。

3.2 拦截请求和响应

axios提供了拦截器,可以在发出请求之前和收到响应之后对其进行操作。我们可以使用axios.interceptors.request.use方法添加请求拦截器,使用axios.interceptors.response.use方法添加响应拦截器,示例代码如下:

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

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  console.log('响应拦截器', response);
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

在上述代码中,我们在请求拦截器中输出了请求的配置信息,在响应拦截器中输出了响应的数据。

3.3 取消请求

在某些情况下,我们可能需要取消一个已经发送的请求。axios提供了取消请求的功能。我们可以使用CancelToken来创建一个取消令牌,然后发送请求时将取消令牌传递给请求配置,示例代码如下:

const CancelToken = axios.CancelToken;
let cancel;

// 发送请求
instance.get('/user', {
  cancelToken: new CancelToken(function executor(c) {
    // executor函数接收一个取消函数作为参数
    cancel = c;
  })
});

// 取消请求
cancel();

在上述代码中,我们创建了一个取消令牌,然后将取消令牌作为配置项传递给请求。当我们需要取消请求时,调用取消函数即可。

四、使用示例

下面是一个完整的使用axios发送HTTP请求的示例代码:

const axios = require('axios');

const instance = axios.create({
  baseURL: 'http://api.example.com',
  timeout: 5000
});

instance.interceptors.request.use(function (config) {
  console.log('请求拦截器', config);
  return config;
}, function (error) {
  return Promise.reject(error);
});

instance.interceptors.response.use(function (response) {
  console.log('响应拦截器', response);
  return response;
}, function (error) {
  return Promise.reject(error);
});

instance.get('/user', {
  params: {
    id: 1,
    name: 'John'
  }
})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

在上述代码中,我们创建了一个axios实例,并对请求和响应进行了拦截处理。然后,我们发送了一个GET请求,并处理了成功和失败的情况。

五、总结

本文对axios进行了详细的介绍和讲解。我们了解了axios的特点和优势,并学习了如何使用axios发送HTTP请求,以及如何配置axios的基本设置、拦截请求和响应、取消请求等操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程