封装 axios 请求

vue 封装 js 方法

一、安装 axios 并引入:

Axios 中文说明

  1. 安装axios:npm install axios
  2. 因为基本上全局都会使用到 axios 方法,所以在 main.js 中引入:
import axios from 'axios';
Vue.prototype.$axios = axios //全局注册,使用方法为:this.$axios


二、新建文件,封装 axios

1. 在src下新建一个 api 文件夹,并在 api 下新建 ajax.jsindex.js

因为要在全局上使用,且引入时地址想要少写一个 index.js,所以 index.js 写请求接口,ajax.js 写请求拦截

2. ajax.js

import axios from 'axios'
import router from '@/router'
import store from '@/store'
import {Message,MessageBox,Loading}  from 'element-ui';
import {getCookie}  from '@/filters/cookie';let loading = null;//请求拦截器
axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么(将数据发送给后台时的请求操作,可以给请求头添加token等信息)loading = Loading.service({lock: true,text: 'Loading',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'});// setTimeout(() => {//   loading.close();// }, 2000);//判断是不是登录接口,如果不是,则请求参数添加:token/userCode字段var reg = /userLogin$/;if( !reg.test(config.url) ){if( getCookie("token") ){ //token是否存在,,导入功能也加了请求头config.headers.accessToken = getCookie("token");config.headers.clientType = 1;} else {config.headers.accessToken = "默认的token,防止测试出错"; //techsun的// config.headers.accessToken = "E9922E7DFC5B013D2D9BC00348DF12132D6310C3DCCAD9E9A81CF4AD1E69704C" //TCtechsunconfig.headers.clientType = 1;}}  return config;
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
});// 添加响应拦截器
axios.interceptors.response.use(function (response) {if(loading !== null) {loading.close()loading = null;}// 对响应数据做点什么if(response.data.code === "0000" && response.status === 200){return response.data;} //比如二进制流else if(!response.data.code && response.status === 200){console.log("axios配置",response)return response;}else {//0001:系统异常,请联系管理员;0002:没有查询到结果Message.error(response.data.msg);}
}, function (error) {// 对响应错误做点什么if(loading !== null) {loading.close()loading = null;}return Promise.reject(error);
});
export default axios;

3. index.js

import './ajax'
const BASE_URL = '后台ip'; //测试--外网
let aaabbb = {  //记住aaabbb这个变量名,使用时会用到login: BASE_URL + 'userLogin', //登录statisticsByLabelType: BASE_URL + '接口名称1', //记住前面的属性名称,在使用会用到statisticsByProduct: BASE_URL + '接口名称2', //按品种统计的出库数量
}
export default{aaabbb}


三、引入封装的方法,并使用

1. 在 main.js 中引入

//axios
import axios from "axios";
Vue.prototype.$axios = axios;
import api from '@/components/api' //引入接口,index.js可以省略
// console.log(api.smoke)
Vue.prototype.$api = api.aaabbb;

2. 使用

this.$axios.post(statisticsByLabelType, this.params)
.then(res=>{//请求成功的操作
}).catch(err=>{})

参考:
axios请求成功之前加载loading,封装axios请求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Response.Redirect 编码的问题

UTF-8 传递到 gb2312 HttpUtility.UrlEncode("要传递的字符参数",Encoding.GetEncoding("GB2312"))转载于:https://www.cnblogs.com/JensonBin/archive/2010/11/27/1889726.html

P1553 数字反转(升级版)

P1553 数字反转(升级版) 温馨提示 1.在处理小数的时候注意处理末尾的0,反转后末尾不得有多余的0 (判断的时候 s[ i ] ! 0 判断的是字符) 2.处理小数和分数的时候,要符号前后分别输出, flag标…

http协议以及防盗链技术

http协议,又称为超文本传输协议,顾名思义,http协议不仅能传输文本,还能传输图片,视频,压缩包等文件,http协议是建立在tcp/ip协议的基础之上的,http协议对php程序员来讲可以说是重中之…

移动端 flexible.js 布局详解

原本想直接引入原文链接,但是又担心作者哪天想不开注销账号,这么好的一篇文章看不到了,还是转载一下吧(/ω\)。 另外推荐一篇好文:移动端rem自适应实操讲解 本文讲的通过 flexible.js 实现了rem自适应,有了…

Gradle善良:获得更多的依赖性见解

在我们的大多数项目中,我们都依赖于其他代码,例如库或其他项目。 Gradle有一个不错的DSL来定义依赖关系。 依赖性在依赖性配置中分组。 这些配置可以自己创建,也可以通过插件添加。 一旦定义了依赖项,我们就可以通过dependencies任…

DotnetCharting控件的破解方法

在.net使用DotNetCharting控件生成报表统计图总结 文章中,不少博友提出“1.生成的图片带超链接导向官网,如何处理呀?2.我使用这个控件后,图形可以显示出来。但是发现一个小问题。就是在图形的左上方和图形的下面都隐含了超链接,鼠…

Android开发利器之ActivityTracker

版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/113 Android开发利器之ActivityTracker 今天在群里面划水,有个小伙伴问到一个问题,”刚进公司 清单文件的activity 较…

js css模仿打字效果

1.效果 2.源码 <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><style type"text/css">#myDiv{display: inline-block;width:500px;height:300px;background-color:rgba(0,0,0,0.3);colo…

iframe 高度根据子页面来确定

标题描述一、解决方法解决代码二、关于高度问题简单讲一下jquery中的 height()&#xff0c;innerHeight()、outHeight()&#xff0c;js中的offsetHeight、clientHeight、scrollHeight。如何获取没有给出高度的元素的高度&#xff1f;详细介绍offsetHeight,clientHeight,scrollH…

避免许多if块进行验证检查

在某些情况下&#xff0c;我们需要先验证输入数据&#xff0c;然后再将其发送到业务逻辑层进行处理&#xff0c;计算等。这种验证在大多数情况下是孤立完成的&#xff0c;或者可能包括与外部数据或其他输入的某些交叉检查。 看下面的示例&#xff0c;该示例验证用户输入的注册数…

谷歌逐步取消对IE6的支持

1月30日&#xff0c;据国外媒体报道&#xff0c;谷歌周五宣布&#xff0c;截至3月1日&#xff0c;谷歌将不再其谷歌Docs和谷歌网站服务支持IE6。如果IE用户想使用那些产品&#xff0c;他们必须至少升级到版本7&#xff0c;如同“其他许多公司已经停止支持如Internet Explorer 6…

国内手机号正则表达式

java的写法&#xff1a; String pattern "^((1[358][0-9])|(14[57])|(17[0678])|(19[7]))\\d{8}$"; javascript的写法&#xff1a; var pattern /^((1[358][0-9])|(14[57])|(17[0678])|(19[7]))\d{8}$/; 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.co…

layui 子页面写弹出框覆盖父页面,以及给弹框中的表单赋值

咋说呢&#xff0c;因为对 layui 不太熟悉&#xff0c;这个弹出框搞了好久&#xff0c;看了好多解决方案&#xff0c;大致尝试了一下其中几种&#xff0c;在坑中无法自拔。。。总之终于搞出来了&#xff0c;在这里分享一下我的笔记。 着急的直接 戳这里 看解决代码。 尝试 1、…

html实现文字垂直居中且设置间隔

使用table和table-call布局 将表格作为一个table表&#xff0c;使用table-cell定义每个单元格的布局为table-cell, 抛出display的有效值 单元格中间的间隔使用 border-spacing:10px; border-collapse: separate;定义单元格vertical-align: middle; display: table-cell;代码源码…

入世与出世

同情恰好有两种。一种同情怯懦感伤&#xff0c;实际上只是心灵的焦灼。看到别人的不幸&#xff0c;急于尽快脱身出来&#xff0c;以免受到感动&#xff0c;陷入难堪的境地。这种同情根本不是对别人的痛苦抱有同感&#xff0c;而只是本能地予以抗拒&#xff0c;免得它触及自己的…

Hibernate隐藏的宝石:pooled-lo优化器

介绍 在这篇文章中&#xff0c;我们将揭示一个序列标识符生成器&#xff0c;​​它结合了标识符分配效率和与其他外部系统的互操作性&#xff08;同时访问底层数据库系统&#xff09;。 传统上&#xff0c;有两种序列标识符策略可供选择。 序列标识符&#xff0c;对于每个新值…

vue inheritAttrs、$attrs和$listeners使用

inheritAttrs、$attrs和$listeners使用场景&#xff1a; 组件传值&#xff0c;尤其是祖孙组件有跨度的传值。 &#xff08;1&#xff09;inheritAttrs 属性说明&#xff1a;https://cn.vuejs.org/v2/api/#inheritAttrs 说明比较晦涩。 组件传值一般是通过props传值的。inhe…

鼠标滚轮事件及解决滚轮事件多次触发问题

转载&#xff1a;https://www.cnblogs.com/jjxhp/p/11736066.html#_label0 一、滚轮事件的 js 写法 二、jQuery写法 三、参考 四、滚轮事件滚动过快&#xff0c;事件触发两次 一、js //判断鼠标滚轮滚动方向 if (window.addEventListener){ //FF,火狐浏览器会识别该方法wind…

Leetcode 2976. Minimum Cost to Convert String I

Leetcode 2976. Minimum Cost to Convert String I 1. 解题思路2. 代码实现 题目链接&#xff1a;2976. Minimum Cost to Convert String I 1. 解题思路 这道题思路上其实是非常直接的&#xff0c;本质上就是给出有向图之后&#xff0c;求出有向图上任意两点之间的最短距离&…

仍不切换到Java 8的6个理由

Java 8很棒。 期。 但是……在我们有机会玩耍并玩弄它之后&#xff0c;就该退出了&#xff0c;避免吃盐。 所有的好东西都是有代价的&#xff0c;在这篇文章中&#xff0c;我将分享Java 8的主要痛点。请确保在升级和放弃7之前您已经意识到了这些痛点。 1.并行流实际上会使您减…