[vue代码片段] 封装axios请求 封装cookie 对应的操作方法

封装axios请求

src\utils\request.js

import {
    
     getCookie } from './cookie.js';
import Vue from 'vue'
import axios from 'axios';

//2。创建server
const instance = axios.create({
    
    
    baseURL: '',//  index/index  http://kumanxuan1.f3322.net:8001
    timeout: 5000  //超时链接
})

//3.请求拦截    登陆放token的地方
instance.interceptors.request.use(config => {
    
    
    config.headers['My_ToKen'] = getCookie('token')
    return config
})

//4.响应拦截   解码加密  公共逻辑判断   项目中所有的错误  都可以在这个位置进行处理
instance.interceptors.response.use(res => {
    
    
    // console.log(res)
    //全局错误提示
    if (res.status === 200 || res.data.code == 200) {
    
    
        return res.data
    } else {
    
    
        Vue.prototype.$message({
    
    
            message: '网络不通',
            type: 'error'
        });
    }
})

export default instance

封装cookie 对应的操作方法

src\utils\cookie.js

import Cookie from 'js-cookie'

export function setCookie(key, value) {
    
    
    Cookie.set(key, value)
}
export function getCookie(key) {
    
    
    return Cookie.get(key)
}
export function removeCookie(key) {
    
    
    Cookie.remove(key)
}

接口示例

src\http\http.js

// 存放所有的接口请求
import instance from "../utils/request";

// 登录接口 post
export function loginApi(params) {
    
    
    return instance({
    
    
        url: '/login',
        method: 'post',
        data: params   //axios是就是promise封装的ajax  工具类
    })
}


//获取首页列表数据  get
export function getDataList(params) {
    
    
    return instance({
    
    
        url: '/getDataList',
        method: 'get',
        data: params
    })
}

调用接口,发送请求示例

import {
    
     getDataList } from "@/http/http";


getDataList({
    
     page: this.page, pageSize: this.pageSize }).then((res) => {
    
    
            this.tableData = res.data
        })

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_14993591/article/details/121535398