Skip to main content

封装axios(不使用拦截器)

每次发送请求设置 token

//调用
request('/auth/login', 'POST', { username: 'hunger', password: '123456' }).then(data => {
console.log(data)
})
//配置默认请求地址
//axios.defaults.baseURL = '//blog-server.hunger-valley.com'
axios.defaults.baseURL = '//localhost:3006'

//配置请求头:
//post请求的时候,我们需要加上一个请求头,所以可以在这里进行一个默认的设置,即设置post的请求头为
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'

//封装requset
function requset(url,type = 'GET',data = {}){
return new Promise((resolve,reject)=>{
let option = {
url,
method:type
}

if(type.toLowerCase() === 'get){
option.params = data
}else{
option.data = data
}

if(localStorage.token){
axios.defalut.headers.common['Authorization'] = localStorage.token //Authorization[ˌɔːθərəˈzeɪʃn]:授权
}

axios(option).then(res => {
console.log(res.data)
if(res.data.status === 'ok') { //后端约定 status 0[ˈsteɪtəs]
if(res.data.token){ //查看返回数据是否存在token
localStorage.token = res.data.token //本地储存token
}
resolve(res.data)
}else{
Message.error(res.data.msg)
reject(res.data)
}
}).catch(err => {
Message.error('网络异常')
reject({ msg: '网络异常' })
})
})
})
}