vue 网络请求拦截器

import axios form 'axios'
import store from '@/store/index.js'
import baseUrl from './baseUrl'

import {Message} from 'element-ui'

const http={}

var instance=axios.create({
	timeout:5000
})

instance.interceptors.request.use(
	function(config){
		if(store.state.UserToken){
			config.headers.Authorization=store.state.UserToken
		}
		return config
	}
	function(error){
		return Promise.reject(error)
	}
)

instance.interceptors.response.use(
	response=>{
		return response.data
	},
	err=>{
		if(err&&err.response){
			switch(err.response.status){
				case 400:
					err.message="请求出错"
					break
				case 401:
					Message.warning({
						message:'授权失败,请重新登录'
					})
					store.commit('LOGIN_OUT')
					setTimeout(()=>{
						window.location.reload()
					},1000)
					return
				case 403:
					err.message="拒绝访问"
					break
				case 404:
					err.message='请求错误,为找到该资源'
					break
				case 500:
					err.message='服务器出错'
					break
			}
		}else{
			err.message='连接服务器失败'
		}
		Message.error({
			message:err.message
		})
		return Promise.reject(err.response)
	}
)


http.get=function(url,options){
	return new Promise((resolve,reject)=>{
		instance.get(url,options).then(response=>{
			if(response.code===0){
				resolve(response.data)
			}else{
				Message.error({
					message:response.message
				})
				reject(response.message)
			}
		}).catch(e=>{
			console.log(e)
		})	
	})
}


http.post=function(url,data,options){
	return new Promise((resolve,reject)=>{
		instance.post(url,data,options).then(response=>{
			if(response.code===0){
				resolve(response.data)
			}else{
				Message.error({
					message:response.message
				})
				reject(response.message)
			}
		}).catch(e=>{
			console.log(e)
		})
	})
}



export default http

使用方式,在 /views/api/login.js 中

import axios from "../utils/http"

export function fetchPermission(){

}

export function login(user){
    return axios.get('/api/login?user='+user)
}

在login.vue 组件中


async login(){
    let data=await login(this.account);
    console.log(data)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值