加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

封装vue发送请求

发布时间:2020-12-16 23:29:19 所属栏目:百科 来源:网络整理
导读:import axios from 'axios'import { getToken } from '@/util/token'import qs from 'qs'import router from './router'import config from './config'import Vue from 'vue'console.log(config) // 创建axios实例 const http = axios.create({ baseURL: con
import axios from 'axios'
import { getToken } from '@/util/token'
import qs from 'qs'
import router from './router'
import config from './config'
import Vue from 'vue'
console.log(config)

// 创建axios实例
const http = axios.create({
baseURL: config.api_base,timeout: 15000,transformRequest: [
function(data,headers) {
console.log(data)
data = data || {}
data = qs.stringify(data)
headers['Authorization'] = getToken()
return data
}
]
})

// request拦截器
http.interceptors.request.use(config => {
config.data = config.data ? config.data : {}
if (router.currentRoute && router.currentRoute.meta.requiresAuth) {
if (getToken() === '') {
return Promise.reject('请登录后操作')
} else {
return config
}
} else {
return config
}
})

// respone拦截器
http.interceptors.response.use(
response => {
let data = response.data

    let msg = data.message || ''
    if (data.code == 401) {
        // 账号禁用
        return Promise.reject(new Error(msg))
    } else if (data.code == 403) {
        // 登录失效 需重新登录
        Vue.toasted.error('登录失效 需重新登录',{ icon: 'error' }).goAway(2000)
        router.replace({ name: 'login' })
        return Promise.reject(new Error(msg))
    }
    return data
},error => {
    return Promise.reject(error)
}

)

export default http

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读