由于业务性质缘由,以前的项目,其实没有作帐号管理,默认登陆。
最近要求作帐号权限管理,因此须要在api请求中验证token。前端
config.headers.Token = token
Content-Type
、数据格式化withCredentials
、crossDomain
Access-Control-Allow-Headers:x-requested-with,content-type,token
解决过程当中,容易出现如下问题:vue
问题老是解决不完的,每解决完一个问题,都是一次收获!
附上前端js代码:ios
//设置post的默认格式为form-data //请求拦截:若是存在token,则把token带在请求头上发送出去 axios.defaults.withCredentials = true; axios.defaults.crossDomain = true; axios.interceptors.request.use((config) => { config.headers = {'Content-Type':'application/x-www-form-urlencoded'} let token = store.state.token; if (token) { config.headers.Token = token; } config.data = qs.stringify(config.data, {arrayFormat: 'brackets'}); return config; }); //响应拦截:若是htpp状态401,则是须要登陆,清除token,跳转到登陆页 axios.interceptors.response.use(res =>{ return res }, error => { if(error.response && error.response.status === 401){ store.commit('clearToken') router.replace({ path: '/login', }) } return Promise.reject(error.response ? error.response.data : error) })