• vue封装axios请求接口并添加前置拦截器和响应拦截器


    目录

    设置步骤

    1.安装axios:

    2.创建API文件

    3.使用封装的API:


     

    设置步骤

    在Vue中封装axios请求接口并添加前置拦截器和响应拦截器,可以按照以下步骤进行操作:

    1.安装axios

    首先,你需要安装axios。可以通过npm或yarn来安装它。在终端中运行以下命令:

    1. npm install axios
    2. # 或者使用yarn
    3. yarn add axios
    2.创建API文件

    在src目录下创建一个名为api.jsapi.ts的文件,用于封装axios请求和拦截器。例如,编写以下代码:

    1. import axios from 'axios';
    2. // 创建axios实例
    3. const instance = axios.create({
    4. baseURL: 'https://your-api-url.com', // 设置API的基础URL
    5. timeout: 5000, // 设置请求超时时间
    6. });
    7. // 前置拦截器
    8. instance.interceptors.request.use(
    9. (config) => {
    10. // 在发送请求之前做些什么,比如添加token等
    11. return config;
    12. },
    13. (error) => {
    14. // 处理请求错误
    15. return Promise.reject(error);
    16. }
    17. );
    18. // 响应拦截器
    19. instance.interceptors.response.use(
    20. (response) => {
    21. // 对响应数据做些什么,比如处理错误码等
    22. return response.data;
    23. },
    24. (error) => {
    25. // 处理响应错误
    26. return Promise.reject(error);
    27. }
    28. );
    29. export default instance;

    在这个例子中,我们创建了一个名为instance的axios实例,并设置了基础URL和请求超时时间。然后,我们使用interceptors添加了前置拦截器和响应拦截器。

    3.使用封装的API:

    现在,你可以在Vue组件中使用封装的API来发送请求。例如,在某个组件中,你可以引入刚刚创建的API文件,并使用它来发送请求:

    1. import api from './api';
    2. export default {
    3. methods: {
    4. fetchData() {
    5. api.get('/data')
    6. .then((response) => {
    7. // 处理成功响应数据
    8. console.log(response);
    9. })
    10. .catch((error) => {
    11. // 处理错误
    12. console.error(error);
    13. });
    14. },
    15. },
    16. };

    在这个例子中,我们通过api.get('/data')发送了一个GET请求来获取数据。你可以根据需要使用不同的HTTP方法(如GET、POST等)来发送请求。

    这样,你就可以在Vue中封装axios请求接口并添加前置拦截器和响应拦截器了。

  • 相关阅读:
    如何在填写资料时使用数据中心收集数据?
    谈谈JSF业务线程池的大小配置
    【Call for papers】DSN-2023(CCF-B/截稿日期: 2022年12月7日)
    Nacos Discovery--服务治理
    windows10中docker与vm不兼容
    【JavaWeb】-- thymeleaf视图模板技术
    变电站3D仿真实训系统的特色及优势
    交通地理信息系统实习教程(二)
    数据可视化?这些平台能处
    【JavaSE】内部类
  • 原文地址:https://blog.csdn.net/m0_73481765/article/details/133797393