Vue 中简易封装网络请求(Axios),包含请求拦截器和响应拦截器

axios简介

Axios 是一个基于 promise网络请求库,可以用于浏览器node.js

Axios官方中文文档

特性

安装

npm install axios;

示例代码

https.js

import axios from "axios";
// const token = localStorage.getItem("accessToken");

export const https = axios.create({
  baseURL: "http://localhost:3000",
  timeout: 15000,
  headers: {},
});

// 添加请求拦截器
https.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    // if (token) {
    //   config.headers.accessToken = `Bearer ${token}`;
    // }
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    // console.log(error);
    return Promise.reject(error);
  }
);

// 添加响应拦截器
https.interceptors.response.use(
  (response) => {
    // 2xx 范围内的状态码都会触发函数
    // 对响应数据做点什么
    // console.log(response);
    if (response.status === 200) {
      // console.log(Promise.resolve(response));
      return Promise.resolve(response);
    } else {
      return Promise.reject(response);
    }
    // return response;
  },
  (error) => {
    // 超出 2xx 范围状态码都会触发函数
    console.log(error);
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

在Vue引入使用

import { https } from "@/api/http";
//GET请求
// 写过的一个分页查询为例
https
  .get("/display", {
    params: {
      pageSize: page.pageSize.value,
      currentPage: page.currentPage.value,
    },
  })
  .then((res) => {
    console.log(res);
  })
  .catch((error) => {
    console.log(error);
  });
  // 另一种写法
 https.get("/display?ID=12345")
  .then((res) => {
    console.log(res);
  })
  .catch((error) => {
    console.log(error);
  });
 
//POST请求
https
  .post("/display", {
  	id: id.value,
  })
  .then((res) => {
    console.log(res);
  })
  .catch((error) => {
    console.log(error);
  });

原文地址:https://blog.csdn.net/yuyunbai0917/article/details/134450749

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_6949.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

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