发表于: 2019-12-04 23:58:35

0 1177


今天完成的事情:Home页的制作。封装axios和接口,做http拦截

明天计划的事情:

遇到的问题:

vuex在页面刷新后数据重置了。

收获:

import axios from 'axios'
import router from '@/router'
import qs from "qs"
import {
    Notification
from 'element-ui'

const service = axios.create({
    baseURL: process.env.BASE_API,
    timeout: 10000
})

// http request 拦截器
service.interceptors.request.use(
    config => {
        config.headers['Content-Type'] = 'application/json;charset=UTF-8'
        // 在post请求发送出去之前,对其进行编码
        if (config.method === 'post') {
            config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
            config.data = qs.stringify(config.data);
        }
        
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// http response 拦截器
service.interceptors.response.use(
    response => {
        const code = response.data.code
        if (code === '500') {
            router.push('/')
        } else if (code === '401') {
            router.push('/')
        }
        return response
    },
    error => {
        Notification.error({
            title: '提示',
            message: '服务器连接错误',
            duration: 3000
        })
        return Promise.reject(error)
    }
)

/**
 * 封装axios请求
 * @param options 请求参数
 * @return promise
 */
const request = options => {
    return new Promise((resolvereject=> {
        service(options)
            .then(response => {
                resolve(response.data)
            })
            .catch(error => {
                reject(error)
            })
    })
}

export default request



返回列表 返回列表
评论

    分享到