/**
* 封装get方法
* @param url
* @param data
* @returns {Promise}
*/ export function get(url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
})
.then(response => {
resolve(response.data);
})
.catch(err => {
reject(err)
})
})
} /**
* 封装post请求
* @param url
* @param params
* @returns {Promise}
*/ // Form Data
// headers: {
// "Content-Type": 'application/x-www-form-urlencoded; charset=UTF-8'
// } // Form Data Request payload
//当headers为 json时是 request 方式发送请求 但是如果你们的后台是formData的方式接口 就传一个header进来 就可以 formData 需要qs序列化
//因为我们后台是json接受的比较多 所以json在我这里是默认 可以根据自己的情况修改 这个需要json转字符串不然是乱码的
export function post(url, params = {}, headers) {
return new Promise((resolve, reject) => {
if (headers == undefined) {
axios.post(url, JSON.stringify(params), {
headers: {
"Content-Type": "application/json;charset=UTF-8"
}
})
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
} else {
axios.post(url, QS.stringify(params), headers)
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
} });
}
/**
* 封装patch请求
* @param url
* @param data
* @returns {Promise}
*/ export function patch(url, data = {}) {
return new Promise((resolve, reject) => {
axios.patch(url, data)
.then(response => {
resolve(response.data);
}, err => {
reject(err)
})
})
} /**
* 封装put请求
* @param url
* @param data
* @returns {Promise}
*/ export function put(url, data = {}) {
return new Promise((resolve, reject) => {
axios.put(url, data)
.then(response => {
resolve(response.data);
}, err => {
reject(err)
})
})
}

 
main.js中 
import {
post,
get,
patch,
put,
} from './assets/utils/http' //定义全局变量
Vue.prototype.$post = post;
Vue.prototype.$get = get;
Vue.prototype.$patch = patch;
Vue.prototype.$put = put;

使用

this.$get("/role/getAllRole",{}).then(res => {});
this.$post("/judge/editJudgeInfoRole", {
oid: this.rowData.oid,
roleid: this.roleid
}).then(res => {});

拦截

全部代码

import axios from 'axios'
import QS from "qs"
import store from "@/store/index"
import router from '@/router/index'
import { mapState, mapMutations } from "vuex";
import {
Message
} from 'element-ui';
axios.defaults.timeout = ;
axios.defaults.baseURL = process.env.API_ROOT; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
axios.defaults.headers.common['Authorization'] = store.state.token ? store.state.token : localStorage.token; axios.interceptors.request.use(
config => {
config.headers = {
'Authorization': store.state.token ? store.state.token : localStorage.token
}
return config;
},
error => {
return Promise.reject(err);
}
); //http response 拦截器
axios.interceptors.response.use(
response => { },
error => {
return Promise.reject(error)
}
)

axios 请求二次封装的更多相关文章

  1. vue中axios的二次封装

    我们做项目时,虽然axios也可以直接拿来用,但是对接口比较零散,不太好进行维护,也会产生大量的重复代码,所以我在这对axios进行了统一接口处理 第一步,先在src中的公共文件夹中如utils里新建 ...

  2. vue项目中对axios的二次封装

    近来在使用vue重构公司m站时,使用了axios来进行数据的请求,由于项目的需要,对axios进行了二次封装,点击进入axios //引入axios import axios from 'axios' ...

  3. axios的二次封装

    'use strict' import axios from 'axios' import qs from 'qs' var host = "https://www.easy-mock.co ...

  4. axios 简单二次封装

    import axios from 'axios' import { Message } from 'element-ui'; // 设置baseURL //axios.defaults.baseUR ...

  5. Vue:对axios进行简单的二次封装

    主要做3点: 1.配置一个请求地址前缀 2.请求拦截(在请求发出去之前拦截),给所有的请求都带上 token 3.拦截响应,遇到 token 不合法则报错 // 对 axios 的二次封装 impor ...

  6. 前端Vue项目——首页/课程页面开发及Axios请求

    一.首页轮播图 1.elementUI走马灯 elementUI中 Carousel 走马灯,可以在有限空间内,循环播放同一类型的图片.文字等内容. 这里使用指示器样式,可以将指示器的显示位置设置在容 ...

  7. 原生 Ajax 封装 和 Axios 二次 封装

    AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允 ...

  8. Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)

    1. 实现效果 以get方法向http://192.168.32.12:8080/users 发起请求.获取数据并进行处理 this.apiGet('/users', {}) .then((res) ...

  9. axios 二次封装

    一般项目往往要对 axios 库进行二次封装,添加一些自定义配置和拦截器等 案例 ./service/axios.js 1234567891011121314151617181920212223242 ...

随机推荐

  1. vue,element列表大数据卡顿问题,vue列表渲染慢,element表格渲染慢,表格渲染慢(卡),表格全选卡

    https://github.com/livelyPeng/pl-table 一个表格组件(完美解决万级数据渲染卡顿问题),流畅渲染万级数据并不会影响到el-table的原有功能 分析: 前端UI框架 ...

  2. C#解析深浅拷贝

    前言 前面我们学习完了设计模式,在其中我们有了解到原型模式.这里涉及到了克隆自身对象.那么也就是对对象进行拷贝.这里就涉及到了这么一个概念.深浅拷贝.何为深拷贝何为浅拷贝呢?我们一起来看看吧. 浅拷贝 ...

  3. HDFS基本命令与Hadoop MapReduce程序的执行

    一.HDFS基本命令 1.创建目录:-mkdir [jun@master ~]$ hadoop fs -mkdir /test [jun@master ~]$ hadoop fs -mkdir /te ...

  4. 基于AOP和Redis实现对接口调用情况的监控及IP限流

    目录 需求描述 概要设计 代码实现 参考资料 需求描述 项目中有许多接口,现在我们需要实现一个功能对接口调用情况进行统计,主要功能如下: 需求一:实现对每个接口,每天的调用次数做记录: 需求二:如果某 ...

  5. 前端开发之VSCode扩展

    1.Chinese (Simplified) Language Pack for Visual Studio Code——中文语言包 2.Beautify——代码格式化工具 3.HTML Snippe ...

  6. 20190730_图像混合_opencv_python

    今天学习了 图像的混合 教程上的代码很简单,但是绝对运行不出来 教程名称:OpenCV-Python 中文教程 #图像融合 import cv2 import numpy as np import m ...

  7. jsp一句话木马

    <%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%> <%!Str ...

  8. restapi(9)- caching, akka-http 缓存

    restapi作为前后端交互的枢纽:面对大批量的前端请求,需要确保回复的及时性.使用缓存是一项有效工具.我们可以把多数前端请求的回复response存入缓存,特别是一些需要大量计算才能获取的回复值,更 ...

  9. 近期学习es6后对变量提升及let和const的一点思考

    1.变量提升:(创建->初始化)-->赋值-->修改 就是说,以var声明的变量,它的声明会被提升到当前作用域的顶端(注意是变量声明提升,变量的赋值没有提升) //在if语句中也会提 ...

  10. 还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下

    Java 8 新特性系列文章索引. Jdk14都要出了,还不能使用 Optional优雅的处理空指针? Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下? 还看不懂同事的代码?Lambda ...