封装api
import axios from 'axios' ;
import Vue from 'vue'
import loading from "@/components"
Vue. use ( loading)
const server = axios. create ( {
baseURL: "https://api.it120.cc" ,
timeout: 10000
} )
server. interceptors. request. use ( config = > {
if ( config. url == '/small4/cms/news/list' ) {
Vue. $loading. show ( ) ;
}
if ( localStorage. getItem ( 'token' ) ) {
config. headers. token = localStorage. getItem ( 'token' ) ;
}
return config
} , err = > {
console. log ( err) ;
} )
server. interceptors. response. use ( res = > {
if ( res. data == '无效token' ) {
alert ( 'token无效,请重新登录' )
Vue. $loading. hide ( )
} else {
Vue. $loading. hide ( )
return res
}
} , err= > {
switch ( err. code) {
case 500 : console. log ( '服务器错误' ) ; break ;
case 404 : console. log ( '页面找不到了' ) ; break ;
default :
return Promise. reject ( err)
break ;
}
} )
export default server;
请求接口时如果是get请求的话传递参数需要使用prame来向服务器发送请求参数,
import request from './request'
const users = params = > {
return request ( { url: '/users' , method: 'GET' , params } )
}
export { login, menus , users, getusers}
反之请求方式是post的话,就需要用data来向服务器发送请求
import request from './request'
const login = data = > {
return request ( { url: '/login' , method: 'POST' , data} )
}
export { login, menus , users, getusers}