1. 自己生成的包, 需要安装, 在项目目录下执行: npm i axios vue-axios
  2. 集成:在src文件夹中创建一个新的文件夹api,在此文件夹中创建新文件ipConfig.js request.js user.js
  3. 在axios.js中添加代码
npm install axios --save

ipConfig.js

import axios from 'axios'
import {Message} from 'element-ui'
import {devIp} from '@/api/ipConfig'
import router from '../router'
// create an axios instance

const service = axios.create({
    baseURL: devIp + '', // 测试IP
    timeout: 100000, // request timeout
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
})

// request interceptor
service.interceptors.request.use(config => {
    // Do something before request is sent
    let token = localStorage.getItem('token')
    if (token) {
        config.headers['x-auth-token'] = token
    }
    return config
}, error => {
    // Do something with request error
    // console.log(error); // for debug
    Promise.reject(error)
})

// respone interceptor
service.interceptors.response.use(
    // response => response,
    response => {
        const res = response.data
        if (res.code == 10000) {
            return res
        } else if (res.code == 100) {
            if (res.msg == 'token无效') {
                localStorage.removeItem('token')
                router.push({path: '/login'})
            } else {
                Message({
                    message: res.msg,
                    type: 'error',
                    duration: 2 * 1000
                })
            }
        } else {
            Message({
                message: res.msg,
                type: 'error',
                duration: 5 * 1000
            })
            return res
        }
    },
    error => {
        console.log('err' + error)// for debug
        Message({
            message: error.msg,
            type: 'error',
            duration: 3000
        })
        return Promise.reject(error)
    })

export default service

ipConfig.js

// var url1 = ' http://47.104.213.134:8080'
var url1 = ''
// var url1 = 'http://app.dianl-l.com'
var url2 = ''
var ip = process.env.NODE_ENV === 'production' ? url1 + "/" : url2 + "/"

export const devIp = ip
export const devIp2 = process.env.NODE_ENV === 'production' ? url1 : url2
export const testIp = ip

user.js

import request from '@/api/request'

export function login(data) {
    return request({
        url: '/api/user/login',
        method: 'post',
        data,
    })
}
// 查询所有已注册的设备
export function getAllDev(data) {
    return request({
        url: '/api/dev/getAllDev',
        method: 'post',
        data,
    })
}

// 删除
export function delDev(data) {
    return request({
        url: '/api/dev/delDev',
        method: 'post',
        data,
    })
}

// 添加
export function addDev(data) {
    return request({
        url: '/api/dev/addDev',
        method: 'post',
        data,
    })
}

export function getInfo(params) {
    return request({
        url: '/api/user/info',
        method: 'get',
        params,
    })
}

export function logout(data) {
    return request({
        url: '/api/user/logout',
        method: 'post',
        data,
    })
}

By lxcss

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注