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

首頁 > 編程 > JavaScript > 正文

詳解基于 axios 的 Vue 項目 http 請求優化

2019-11-19 15:33:56
字體:
來源:轉載
供稿:網友

對于需要大量使用 http 請求的項目,我們通常會選擇對 http 請求的方法進行二次封裝,以便增加統一的攔截器,或者統一處理阻止重復提交之類的邏輯。Vue.js 的項目中我們選擇使用了 axios 這樣一個 http 庫,下面也就簡述下基于 axios 做的簡單二次封裝

依賴

首先引入 axios ,對于 ie9 這樣不支持 promise 的瀏覽器還需引入 es6-promise 模塊

require('es6-promise').polyfill();var axios = require('axios');

axios 初始化

初始化我們要實現兩個需求:

1.發送請求時帶上 cookies

2.重發發送請求時,如果前一次相同請求還未結束則中止前一次請求

const httpServer = axios.create({  responseType: 'json',  withCredentials: true, // 設置 withCredentials 使請求帶上 `cookies`  cancelToken: new axios.CancelToken(function (c) {    cancel = c // 記錄當前請求的取消方法  })})

http 請求二次封裝

var promiseArr = {} // 用于記錄每個請求的取消方法const gUtils = {  getData: function () {    let cancel    const httpServer = axios.create({      responseType: 'json',      withCredentials: true, // 設置 withCredentials 使請求帶上 `cookies`      cancelToken: new axios.CancelToken(function (c) {        cancel = c // 記錄當前請求的取消方法      })    })        // 設置一個攔截器,每次發起請求前取消掉在進行中的相同請求    httpServer.interceptors.request.use(function (config) {     if (promiseArr[config.url]) {      promiseArr[config.url]('操作取消')      promiseArr[config.url] = cancel     } else {      promiseArr[config.url] = cancel     }       return config    }, function (err) {     // return Promise.reject (error)    })      return httpServer  }}

這樣我們在對接服務時候直接使用我們封裝好的 http 請求方法即可

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉善县| 渭源县| 晴隆县| 唐河县| 上虞市| 察雅县| 翁源县| 桐柏县| 光山县| 绥滨县| 神农架林区| 台北市| 河津市| 浮梁县| 绍兴县| 志丹县| 凤凰县| 嵊泗县| 遵化市| 凉城县| 哈密市| 鄄城县| 中卫市| 红桥区| 蚌埠市| 思南县| 庆安县| 乌鲁木齐县| 昂仁县| 谢通门县| 荆门市| 武平县| 锡林郭勒盟| 安庆市| 德令哈市| 琼结县| 通海县| 顺平县| 乐陵市| 布拖县| 科技|