由於業務性質緣由,以前的項目,其實沒有作帳號管理,默認登陸。
最近要求作帳號權限管理,因此須要在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) })