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

首頁 > 語言 > JavaScript > 正文

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

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

對于需要大量使用 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 請求方法即可

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

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

圖片精選

主站蜘蛛池模板: 牟定县| 盐津县| 平凉市| 洱源县| 商河县| 民勤县| 兖州市| 弋阳县| 兴安县| 盐池县| 成安县| 巢湖市| 华安县| 临清市| 庆安县| 大石桥市| 东辽县| 天水市| 阳谷县| 师宗县| 泰来县| 南乐县| 玉树县| 清远市| 万全县| 伊春市| 抚远县| 宁河县| 陈巴尔虎旗| 姜堰市| 泉州市| 兴化市| 大邑县| 四川省| 绍兴县| 当雄县| 安溪县| 扬中市| 丰县| 安新县| 虎林市|