对于需要大量使用 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 请求方法即可
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍详解基于vue-cli优化的webpack配置,包括了详解基于vue-cli优化的webpack配置的使用技巧和注意事项,需要的朋友参考一下 最近的项目度过了开始忙碌的基建期,也慢慢轻松下来,准备记录一下自己最近webpack优化的措施,希望有温故知新的效果。 项目采用的是vue全家桶,构建配置都是基于vue-cli去改进的。关于原始webpack配置大家可以看下这篇文章vue-cl
本文向大家介绍详解Vue-cli 创建的项目如何跨域请求,包括了详解Vue-cli 创建的项目如何跨域请求的使用技巧和注意事项,需要的朋友参考一下 问题描述: 使用 Vue-cli 创建的项目,开发地址是 localhost:8023,需要访问 localhost:9000 上的接口 分析原因: 不同域名之间的访问,需要跨域才能正确请求。跨域的方法很多,通常都需要后台配置 不过 Vue-cli 创
本文向大家介绍浅谈在Vue-cli里基于axios封装复用请求,包括了浅谈在Vue-cli里基于axios封装复用请求的使用技巧和注意事项,需要的朋友参考一下 本文介绍了浅谈在Vue-cli里基于axios封装复用请求,分享给大家,具体如下: 安装 只用安装一个axios就可以了。 接口代理设置 为了请求可以正常发送,我们一般要进行一个接口代理的配置,这样可以避免请求跨域,项目打包之后,后端一般也
本文向大家介绍Vue基于NUXT的SSR详解,包括了Vue基于NUXT的SSR详解的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Vue基于NUXT的SSR,分享给大家,也给自己留个笔记。 SSR 首先说下 SSR,最近很热的词,意为 Server Side Rendering(服务端渲染),目的是为了解决单页面应用的 SEO 的问题,对于一般网站影响不大,但是对于论坛类,内容类网站来说是致命
本文向大家介绍详解vue项目首页加载速度优化,包括了详解vue项目首页加载速度优化的使用技巧和注意事项,需要的朋友参考一下 凡是做SPA的项目,特别是移动端的SAP项目,首屏加载速度必定是一个绕不过去的话题。接下来我就我们项目里的一些实践来做一下总结。希望抛砖引玉,如果各位有更好的方案,不吝赐教。 1: 针对第三方js库的优化 我们项目里用到的第三方js库主要有:vue, vue-router,
本文向大家介绍记一次vue-webpack项目优化实践详解,包括了记一次vue-webpack项目优化实践详解的使用技巧和注意事项,需要的朋友参考一下 项目现状 项目是一个数据监测平台,引入了ehcart和three.js 负责项目的数据可视化;打包后,体积高达2.1M,这个体积相比于我的项目规模来说就显得稍有笨重了 使用webpack-bundle-analyzer分析了一下各个文件所占用的比例