vue中对axios进行封装

vue中对axios进行封装

  • 先在vue中安装axios
  • 在src文件中添加一个http文件,在其中创建一个request.js(中写封装的axios)文件
  • 将axios导入进去
  • axios中提供的常用的内容:
公共url(服务器地址)
超时时间
请求头
请求方法:get pust delete put
请求拦截 加载效果,特殊的请求头
响应拦截 取消加载效果 对错误码进行拦截

封装axios的内容

import axios from "axios"  // 引入axios
import router from "../router"   // 引入router

let baseUrl = "";
//利用node环境变量判断,用来区分开发\测试\生产(发布)环境
if (process.env.NODE_ENV === "development") {//开发
    baseUrl = "https://www.liulongbin.top:8888/api/private/v1/"
} else if (process.env.NODE_ENV === "production") {//发布
    baseUrl = "发布地址"
}

// axios 配置默认公共属性
const http = axios.create({
    baseURL: baseUrl,//默认前置url
    timeout: 5000, //默认请求超时事件
})
//请求拦截器
http.interceptors.request.use((config) => {
    //登录成功之后 后续请求都需要在请求头中携带token值才可以继续操作
    // 为请求头对象,添加 Token 验证的 Authorization 字段
    config.headers.Authorization = window.sessionStorage.getItem("token")
    return config
})
//响应拦截器
http.interceptors.response.use((config) => {
    //判断http状态
    switch (config.status) {
        case 200://成功状态
            let responseData = config.data;
            //成功后的状态码异常处理
            switch (responseData.meta.status) {
                case 404://后端返回code  404
                    router.push("/404")
                    console.log("跳转到404");
                    break;
                case 500://后端返回code  500
                    console.log("跳转到500");
                    break;
                case "token过期":
                    router.push("/login")
            }
            break;
        case 404://http404状态
            console.log("跳转到404");
            break;
        case 500://http500处理
            console.log("跳转到500");
            break;
    }
    return config
})

export default http			// 将内容暴露出去

添加一个loginApl.js文件夹

import http from "./request";

export default {
    login(data){
        return http.post("login", data)
    }
}

哪里需要使用就在哪里使用

法2:
创建一个 .env.development 页面,其中内容为:(开发地址)

BASE_URL = "/"  // 当前使用的开发地址
NODE_ENV = "development"  // 名称

创建一个 .env.prodection 页面,其中内容为:(发布地址)

BASE_URL = "/"  // 当前使用的发布地址
NODE_ENV = "prodection"  // 名称

创建一个 .env.test 页面,其中内容为:(测试地址)

BASE_URL = "/"  // 当前使用的测试地址
NODE_ENV = "test"  // 名称

package.json中
分别是开发,发布 测试

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值