vue封裝axios方法

1,下載
npm install axios -S
2, qs不用引入
需要引入vant 的彈出框 因?yàn)橄旅嬗玫?/p>

http.js文件

import axios from "axios";
import { Toast } from "vant";
import QS from 'qs';
// import router from '../router';
// 環(huán)境的切換
// if (process.env.NODE_ENV == 'development') {    
//     axios.defaults.baseURL = 'https://www.baidu.com';} 
// else if (process.env.NODE_ENV == 'debug') {    
//     axios.defaults.baseURL = 'https://www.ceshi.com';
// } 
// else if (process.env.NODE_ENV == 'production') {    
//     axios.defaults.baseURL = 'https://www.production.com';
// }
let localhosts = "http://www.oa.com/v1.0"; //請求的后臺(tái)域名
axios.interceptors.request.use(
  config => {
    //請求之前(可以設(shè)置token)
    // if (localStorage.getItem('token')){  // 判斷是否存在token命满,如果存在的話堪夭,則每個(gè)http header都加上token
    config.headers.common['Token'] = localStorage.getItem('tokenMobile') || ''
    // }
    return config;
  },
  error => {
    Toast(error);
    return Promise.reject(error);
  }
);
axios.interceptors.response.use(
  response => {
    //數(shù)據(jù)拿到之后
    return response.data;
  },
  error => {
    Toast("Http請求失敗须肆,請聯(lián)系管理員");
    return Promise.reject(error.response);
  }
);
function successfun(res) {
  //處理后臺(tái)返回的非200錯(cuò)誤
  if (res.code === 0) {
    return res;
  } else {
    Toast(res.message);
    return res;
  }
}
function errorfun(res) {
  if (res.code != 0) {
    Toast(res.message);
    return res;
  }
}
export default {
  post(url, data) {
    //post請求
    return axios({
      method: "post",
      baseURL: localhosts,
      url,
      data: QS.stringify(data),
    }).then(
      res => {
        return successfun(res);
      },
      err => {
        return errorfun(err);
      }
    );
  },
  get(url, params) {
    //get請求
    return axios({
      method: "get",
      baseURL: localhosts,
      url,
      params,
    }).then(
      res => {
        return successfun(res);
      },
      err => {
        return errorfun(err);
      }
    );
  }
};

api.js文件

export default {
  enterprise_wechat_menus: "/enterprise_wechat/menus",
  flow_dev_common: "/flow/dev_common" 
};

其他頁面調(diào)用

created(){

   this.http.post(this.api.enterprise_wechat_menus)
   .then(res => {
        this.content = res.data
    });
            
 },

作為參考的路由文件router/index.js 腳手架的目錄和文件,里面加了攔截器和保存token

import Vue from "vue";
import VueRouter from "vue-router";
import ReleaseForm from "../views/releaseForm/index.vue";
import ProbationFull from "../views/releaseForm/probationFull.vue";
import LookApproval from "../views/releaseForm/lookApproval.vue";

import mySubmission from "../views/mySubmission/index.vue";
import formDetails from "../views/mySubmission/formDetails.vue";
import myLookApproval from "../views/mySubmission/myLookApproval.vue";

import noMatters from "../views/noMatters/index.vue";
import noFormDetails from "../views/noMatters/noFormDetails.vue";
import transfer from "../views/noMatters/transfer.vue";

import okMatters from "../views/okMatters/index.vue";
import okFormDetails from "../views/okMatters/okFormDetails.vue";

Vue.use(VueRouter);

const routes = [
  {
    path: "/releaseform",
    name: "ReleaseForm",
    component: ReleaseForm,
    meta: {
      metaInfo: {
        title: '發(fā)布表單',
      }
    }
  },
  {
    path: "/releaseform/probationfull",
    name: "ProbationFull",
    component: ProbationFull,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正',
      }
    }
  },
  {
    path: "/releaseform/lookapproval",
    name: "LookApproval",
    component: LookApproval,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正申請-審批流程',
      }
    }
  },
  {
    path: "/mysubmission",
    name: "mySubmission",
    component: mySubmission,
    meta: {
      metaInfo: {
        title: '我提交的',
      }
    }
  },
  {
    path: "/mysubmission/formdetails",
    name: "formDetails",
    component: formDetails,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正申請',
      }
    }
  },
  {
    path: "/mysubmission/mylookapproval",
    name: "myLookApproval",
    component: myLookApproval,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正申請-審批流程',
      }
    }
  },
  {
    path: "/nomatters",
    name: "noMatters",
    component: noMatters,
    meta: {
      metaInfo: {
        title: '待辦事宜',
      }
    }
  },
  {
    path: "/nomatters/noformdetails",
    name: "noFormDetails",
    component: noFormDetails,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正申請',
      }
    }
  },
  {
    path: "/nomatters/transfer",
    name: "transfer",
    component: transfer,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正申請-轉(zhuǎn)審',
      }
    }
  },
  {
    path: "/okmatters",
    name: "okMatters",
    component: okMatters,
    meta: {
      metaInfo: {
        title: '已辦事宜',
      }
    }
  },
  {
    path: "/okmatters/okformdetails",
    name: "okFormDetails",
    component: okFormDetails,
    meta: {
      metaInfo: {
        title: '試用期轉(zhuǎn)正申請',
      }
    }
  },
];

const router = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL,
  routes
});


// 注冊路由導(dǎo)航鉤子
router.beforeEach((to, from, next) => {
  // console.log(localStorage.removeItem('token'),123)
  if(!localStorage.getItem('tokenMobile')){
    if(to.query.token){
      console.log(router.app.$options.store,99)
      router.app.$options.store.commit('showProfile',to.query.state)
      router.app.$options.store.commit('showToken',to.query.token)
      localStorage.setItem('tokenMobile',to.query.token)
      next({
        path: to.query.state,
        //query: {redirect: to.fullPath} // 將要跳轉(zhuǎn)路由的path作為參數(shù),傳遞到登錄頁面
      })
    }
  }

  if (to.meta.metaInfo) {
    if(to.meta.metaInfo.title){
      document.title = to.meta.metaInfo.title
    }
  }
  next()
})



export default router;

————————————————
原文鏈接:https://blog.csdn.net/abez_c/article/details/87186442

還有參考的網(wǎng)址
http://www.reibang.com/p/cac8e979e437

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市顺献,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖甚脉,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铆农,居然都是意外死亡牺氨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門墩剖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猴凹,“玉大人,你說我怎么就攤上這事岭皂〗荐” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵爷绘,是天一觀的道長书劝。 經(jīng)常有香客問我,道長土至,這世上最難降的妖魔是什么购对? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮陶因,結(jié)果婚禮上骡苞,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好解幽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布贴见。 她就那樣靜靜地躺著,像睡著了一般躲株。 火紅的嫁衣襯著肌膚如雪片部。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天霜定,我揣著相機(jī)與錄音档悠,去河邊找鬼。 笑死然爆,一個(gè)胖子當(dāng)著我的面吹牛站粟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曾雕,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼奴烙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了剖张?” 一聲冷哼從身側(cè)響起切诀,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎搔弄,沒想到半個(gè)月后幅虑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡顾犹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年倒庵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炫刷。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡擎宝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浑玛,到底是詐尸還是另有隱情绍申,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布顾彰,位于F島的核電站极阅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涨享。R本人自食惡果不足惜筋搏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望灰伟。 院中可真熱鬧拆又,春花似錦儒旬、人聲如沸栏账。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挡爵。三九已至竖般,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茶鹃,已是汗流浹背涣雕。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闭翩,地道東北人挣郭。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像疗韵,于是被迫代替她去往敵國和親兑障。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容