在请求拦截器中,headers中的Authorization拼写错误,应该为Authorization而不是Authoriztion。

修改后的代码如下:

import axios from 'axios';
import { showMessage } from './status';     // 引入状态码文件
import { Elmessage } from 'element-plus';   // 引入el提示框

// 设置接口超时时间
axios.defaults.timeout = 60000;
// 请求地址,动态赋值的环境变量
axios.defaults.baseURL = import.meta.env.VITE_API_DOMAIN;

// 请求拦截器
axios.interceptors.request.use(
    (config) => {
        const token = sessionStorage.getItem("token");
        // 在发送请求之前做些什么,例如添加token等
        config.headers = {
            'Content-Type': 'application/x-www-form-urlencoded;',   // 传参方式表单
            // 'Content-Type': 'application/json;charset=UTF-8',    // 传参方式为json
            'Authorization': token   // 身份认证
        }
        return config;
    },
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
)

// 响应拦截器
axios.interceptors.response.use(
    (response) => {
        // 对响应数据做些什么
        return response;
    },
    (error) => {
        // 对响应错误做些什么
        const { response } = error;
        if (response) {
            // 请求已发出但不在 200 的范围内
            showMessage(response.status);   // 传入响应码,匹配对应的响应码信息
            return Promise.reject(response.data);
        } else {
            Elmessage.warning("网络连接异常,请稍后再试!");
        }
    }
)

// 封装GET POST 请求并导出
export function request(url = 'http://localhost:3000/', params = {}, data = {}, type = 'POST') {
    // 设置url params type 的默认值
    return new Promise((resolve, reject) => {
        let promise
        if (type.toUpperCase() === "GET") {
            promise = axios({
                url,
                params
            })
        } else if (type.toUpperCase() === "POST") {
            promise = axios({
                method: 'POST',
                url,
                data
            })
        }
        // 处理返回
        promise.then(res => {
            resolve(res)
        }).catch(error => {
            reject(error);
        })
    })
}

修改后的代码中将Authorization的拼写错误修改为了正确的形式

import axios from axios;import showMessage from status; 引入状态码文件import Elmessage from element-plus; 引入el提示框 设置接口超时时间axiosdefaultstimeout = 60000; 请求地址动态赋值的环境变量axiosdefaultsbaseURL = importm

原文地址: https://www.cveoy.top/t/topic/iBQN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录