1、项目路径下,引入axios、qs依赖

npm install axios

npm install qs

2、在项目的src路径下新建一个commJs文件夹,在commJs文件夹里新建aps.js和request.js,api.js用于写接口,对axios的封装写在request.js里

request.js

import axios from 'axios';
import QS from 'qs'; //自动切换环境
axios.defaults.baseURL = process.env._BASEURL
//设置超时时间
axios.defaults.timeout = 10000;
// post请求头
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'
axios.defaults.withcredentials = true //请求拦截(请求发出前处理请求)
axios.interceptors.request.use((config) => {
//在发送请求之前如果为post序列化请求参数
if (config.method === 'post') {
config.data = config.data;
}
return config;
}, (error) => {
return Promise.reject(error);
}); // 响应拦截器(处理响应数据)
axios.interceptors.response.use((res) => {
//对响应数据做判断,与后台协议统一接口返回格式
console.log('>>>>>>>response: ', res);
if (res.data.succ != 'ok') { //这个判断可根据实际情况修改
return Promise.reject(res);
}
return res;
}, (error) => {
return Promise.reject(error);
}); // 封装get方法
function get(url, params){
return new Promise((resolve, reject) =>{
axios.get(url, params).then(res =>{
resolve(res.data);
}).catch(err =>{
reject(err.data);
})
});
} // 封装post方法
function post(url, params){
return new Promise((resolve, reject) =>{
axios.post(url, params).then(res =>{
resolve(res.data);
}).catch(err =>{
reject(err.data);
})
});
} //对外接口
export function request({method, url, data}){
if(method == 'get'){
return get(url, data);
}else if(method == 'post'){
return post(url, data);
}
} export default {
install(Vue) {
Vue.prototype.$axios = axios;
Vue.prototype.$request = function () {
return request;
}
}
}

api.js

import {
request
} from './request' // 列表查询接口
export const getList = (parmas) => {
return request({
url: 'xxx/xxx/xxx',
method: 'post',
data: parmas
})
}

3、在具体组件调用

//index.vue
import { getList } from "../../comm/js/api.js";
export default {
methods: {
getPage() {
var param = {
currentUser: '',
currentPage: "1",
pageSize: "10"
};
getList(param).then(res => {
if (!res.result.list) {
this.list = [];
} else {
this.list = res.result.list;
}
});
}
}

axios封装,使用拦截器统一处理接口的更多相关文章

  1. axios封装的拦截器的应用

    axios拦截器   页面发送http请求,很多情况我们要对请求和其响应进行特定的处理:如果请求数非常多,单独对每一个请求进行处理会变得非常麻烦,程序的优雅性也会大打折扣.好在强大的axios为开发者 ...

  2. axios 拦截器统一在接口增加时间戳参数,防止走缓存。

    request.interceptors.request.use( config => { if (config.method == 'post') { config.data = { ...c ...

  3. 细说vue axios登录请求拦截器

    当我们在做接口请求时,比如判断登录超时时候,通常是接口返回一个特定的错误码,那如果我们每个接口都去判断一个耗时耗力,这个时候我们可以用拦截器去进行统一的http请求拦截. 1.安装配置axios cn ...

  4. Springboot + redis + 注解 + 拦截器来实现接口幂等性校验

    Springboot + redis + 注解 + 拦截器来实现接口幂等性校验   1. SpringBoot 整合篇 2. 手写一套迷你版HTTP服务器 3. 记住:永远不要在MySQL中使用UTF ...

  5. vue+axois 封装请求+拦截器(请求锁+统一错误)

     需求 封装常用请求 拦截器-请求锁 统一处理错误码 一.封装常用的请求 解决痛点:不要每一个模块的api都还要写get,post,patch请求方法.直接将这些常用的方法封装好. 解决方案:写一个类 ...

  6. axios请求响应拦截器的应用

    什么是axios拦截器? 一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器.响应拦截器. 请求拦截器在请求发送前进行必要操作处理 例如添加统一cookie.请求体加验证.设置请求头 ...

  7. Axios Token验证拦截器

    import axios from 'axios'; // req拦截 axios.interceptors.request.use( //设置头部的token config.headers['tok ...

  8. jquery.ajax与axios及定义拦截器

    首先导入jquery和axios包 jquery.ajax function reg(){ var username = $("#username").val(); var pas ...

  9. structs2----数据封装以及拦截器

    技术分析之在Struts2框架中使用Servlet的API 1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet ...

随机推荐

  1. eclipse修改java类时不自动重启

    只有添加修改方法参数等重启 在方法里修改不重启 最后保存,Ctrl+S

  2. LeNet-5 pytorch+torchvision+visdom

    # ====================LeNet-5_main.py=============== # pytorch+torchvision+visdom # -*- coding: utf- ...

  3. windows安装redis并为php5.4添加redis扩展

    第一步 安装包下载 首先下载php5.4对应版本的php_igbinary.dll,php_redis.dll扩展.(php7以后可不需要php_igbinary.dl这个文件了) 链接:https: ...

  4. Python 基础教程 | 菜鸟教程

    https://www.runoob.com/python/python-install.html

  5. Redis慢日志取出来

    http://blog.chinaunix.net/uid-31396856-id-5758295.htmlhttps://blog.51cto.com/legehappy/2151986?sourc ...

  6. CentOS7.5 安装MySql教程

    CentOS7位安装MySql教程 1.先检查系统是否装有mysql rpm -qa | grep mysql 2.下载mysql的repo源 wget http://repo.mysql.com/m ...

  7. IntelliJ IDEA调出problem窗口

    一.File =>Settings 二.搜索Compiler=>勾选Make project automatically 三.出现问题Problems窗口会报错 原文地址:https:// ...

  8. 18-MySQL DBA笔记-MySQL Server调优

    第18章 MySQL Server调优 本章将为读者介绍针对MySQL Server的优化,这也是DBA最熟悉的领域之一.首先我们介绍MySQL的主要参数,然后,讲述常见硬件资源的优化.我们假设读者已 ...

  9. java实现工程配置文件敏感字段加解密

    以下引自他人博客: 1. 需求背景我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如***.properties,具体的内容 #mysql的配置文件jdbc.url=jdb ...

  10. (二十八)jsp之EL表达式

    一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...