以django一文中写的demo为例子,写一下前端调用后端api的方式
后端接口/menu/sapi

前端axios封装
封装处理器(关于环境隔离这块参考vue篇)

import axios, { type InternalAxiosRequestConfig, type AxiosResponse } from 'axios';

function request(config: any) {
    const instance = axios.create({
        baseURL: import.meta.env.VITE_APP_BASE_URL,
        timeout: 5000
    });

    instance.interceptors.request.use((config: any) => {
        //响应拦截,处理身份验证
        return config;
    }, (err) => {
        console.log(err);
    });

    instance.interceptors.response.use((res: AxiosResponse) => {
      //响应拦截,用于处理错误
        return res.data ? res.data : res;//返回响应的 data 字段,如果 data 字段不存在,则返回完整的响应。
    }, (err) => {
        console.log(err);
    });

    return instance(config);
}

export default request

封装api

import request from "./requestconfig"


function getMainMenu(){
  return request({
    url:"/menu/sapi",
  })
}

在app.vue中尝试调用

<script setup lang="ts">
import getMainMenu from '@/network/home'
import {type AxiosResponse } from 'axios';
getMainMenu().then((res: AxiosResponse)=>{
  console.log(res) //因为这里直接返回了res.data,所以不需要手动写.data
})
</script>

标签: none

添加新评论