国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

封裝一下vue中的axios示例代碼詳解

2024-05-06 15:44:32
字體:
來源:轉載
供稿:網友

在vue項目中,和后臺交互獲取數據這塊,我們通常使用的是axios庫,它是基于promise的http庫,可運行在瀏覽器端和node.js中。他有很多優秀的特性,例如攔截請求和響應、取消請求、轉換json、客戶端防御cSRF等。所以我們的尤大大也是果斷放棄了對其官方庫vue-resource的維護,直接推薦我們使用axios庫。如果還對axios不了解的,可以移步axios文檔。

安裝

npm install axios; // 安裝axios

好了,下面開始今天的正文。

此次封裝用以解決: (對于登錄功能的可以直接使用,其他網絡請求也可以直接用,如果有潔癖,可以把token有關的幾行代碼刪掉)

ps:使用時得的引入axios時: import axios from '這個文件的名字及相對路徑'

接受后臺token post參數自動轉換,省略qs.stringify() 后臺token過期之后自動清除本地數據,以便下次再次輸入賬號密碼 更好的錯誤提示信息
/** * 封裝網絡請求 */import axios from "axios"import qs from "querystring"import store from '../store'import router from '../router'//token過期之后重新回登錄界面const toLogin = () =>{ router.push("/login")}// 錯誤信息響應方法const errroHandle = (status,other) => { switch(status){  case 400:   console.log("服務器無法理解請求信息");   break;  case 401:   console.log("用戶信息驗證失敗");   localStorage.removeItem("token"); // 可選項   toLogin();   break;  case 403:   console.log("請求被限制");   localStorage.removeItem("token"); // 可選項   toLogin();   break;  case 404:   console.log("客戶端請求信息錯誤");   break;  default:   console.log(other);   break; }}// 創建axios對象const instance = axios.create({ timeout:5000})// 掛在全局對象instance.defaults.baseUrl = "";instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';// 攔截器:請求攔截和響應攔截 post請求參數需要轉碼// axios的返回值對象要求是一個promise對象instance.interceptors.request.use(config =>{ if(config.method === "post"){  config.data = qs.stringify(config.data) } if(store.state.token){  config.headers.authorization = store.state.token; } return config;},error => Promise.reject(error))instance.interceptors.response.use( // 成功 response => response.status === 200 ? Promise.resolve(response) :Promise.reject(response), // 失敗 error => {  const { response } = error;  if(response){   errroHandle(response.status,response.data)   return Promise.reject(response)  }else{   // 錯誤信息都無法返回   console.log("請求被中斷");  } })export default instance

總結

以上所述是小編給大家介紹的封裝一下vue中的axios示例代碼詳解,希望對大家有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 郁南县| 杨浦区| 东乌珠穆沁旗| 水城县| 会泽县| 古蔺县| 长阳| 葫芦岛市| 友谊县| 津市市| 新郑市| 措勤县| 西贡区| 临猗县| 蕉岭县| 宜良县| 靖安县| 阿拉善盟| 岢岚县| 赤壁市| 灌南县| 乐陵市| 富民县| 陇西县| 鄂伦春自治旗| 隆昌县| 西和县| 巴彦淖尔市| 大足县| 建平县| 拉萨市| 峨边| 丰原市| 日土县| 新安县| 滦平县| 洪泽县| 繁峙县| 丰宁| 肇庆市| 炉霍县|