Vue中封装axios
参考:
https://www.jianshu.com/p/7a9fbcbb1114
https://www.cnblogs.com/dreamcc/p/10752604.html
一、安装axios
npm i axios -S
二、创建src/utils/axios.js、src/api/api.js
axios.js用于封装axios,api.js用于管理接口
三、axios.js
// axios.js import axios from "axios";
// 部分数据需要存进store或取出
import store from "@/store"
// 请求错误时提示,根据需求引入不同ui
import { Toast, MessageBox } from "mint-ui";
// 根据返回值进行页面跳转
import router from "vue-router"
// 封装的获取本地token的方法
import { getToken } from "@/utils/auth" const service = axios.create({
// headers: {'X-Requested-With': 'XMLHttpRequest'}, // 可以配置headers
baseURL: "", // api的base_url
timeout: 10000 // request timeout,默认0
});
// 请求头的设置
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; // 添加一个请求拦截器
service.interceptors.request.use(
(config)=> {
// Do something before request is sent
// 获取tonken,一般是从本地获取
// if (store.getters.token) {
// config.headers["token"] = getToken();
// }
return config;
},
function(error) {
// Do something with request error
return Promise.reject(error);
}
); // 添加一个响应拦截器
service.interceptors.response.use(
(response)=> {
// Do something with response data
// 根据返回值做出判断
if (response.code !== 0) {
// 不成功时...
if (response.code == -1) {
// token失效时,清空缓存,跳转至登录页
// store.commit('SET_TOKEN', '')
// router.push({
// path: ""
// })
}else if(){ }else{
// 提示错误信息
Toast({ message: response.msg, position: "top", duration: 2 * 1000 })
}
}else{
// 请求成功时
return response;
}
},
(error)=> {
// Do something with response error
// 提示错误信息
Toast({ message: error.message, position: "top", duration: 5 * 1000 })
return Promise.reject(error);
}
); export default service
四、api.js
// api.js
import request from "@/utils/axios"; export function oneApi(val) {
return request({
url: "", // 接口
method: "post", // 请求方式
data: val, // 数据
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
});
} export function twoApi(val) {
return request({
url: "", // 接口
method: "post", // 请求方式
data: val, // 数据
headers: {
"Content-Type": "application/x-www-form-urlencoded"
}
});
}
五、使用
import { oneApi} from "@/api/api";
Vue中封装axios的更多相关文章
- vue中封装axios方法
axios基本配置 使用方法 import axios from 'axios' // 创建axios实例 const service = axios.create({ baseURL: proces ...
- Vue中封装axios组件实例
首先要创建一个网络模块network文件夹 里面要写封装好的几个组件 在config.js里面这样写 在index.js要这样写 core.js文件里面内容如下 然后要在main.js文件里面要设置 ...
- vue中采用axios发送请求及拦截器
这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在 ...
- vue中使用axios与axios的请求响应拦截
VUE中使用Axios axios的安装 npm install axios vue-axios axios在vue的配置与使用 在main.js中引入axios和vue-axios import a ...
- vue中对axios进行封装
在刚结束的项目中对axios进行了实践(好不容易碰上一个不是jsonp的项目), 以下为在项目中对axios的封装,仅封装了post方法,因为项目中只用到了post,如有需要请自行进行修改 src/c ...
- vue中使用axios最详细教程
前提条件:vue-cli 项目 安装: npm npm 在main.js导入: // 引入axios,并加到原型链中 import axios from 'axios'; Vue.prototype. ...
- vue中使用axios进行http通信
1.安装 npm install axios 2.在main.js中全局注册 // axios不可以通过use引入,可以通过修改vue原型链 import axios from 'axios' Vue ...
- vue中配置axios.js文件,发送请求
为了统一管理请求,每个项目都会去配置axios:而不是在vue中直接使用,那样不好维护等等 下面是我配置的最基础的axios文件 第一步:首先新建一个axios文件,我是放在router文件下的 im ...
- vue中使用axios
1.结合vue-axios使用 vue-axios是按照vue插件的方式去写的,那么结合vue-axios就可以使用Vue.use()这个方法import axios from 'axios' imp ...
随机推荐
- UML之三、建模元素(2)
本章继续介绍建模元素 https://blog.csdn.net/bit_kaki/article/details/78471760 1:边界 任何一个对象都有一个边界,外界只能通过这个边界来认识对象 ...
- OpenResty + ngx_lua_waf使用
本篇介绍在CentOS7.6上安装.测试使用ngx_lua_waf + openresty. Preface # yum install epel-release -y # yum group ins ...
- Hadoop架构及集群
Hadoop是一个由Apache基金会所开发的分布式基础架构,Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了 ...
- mysql简单备份与恢复
1.备份 mysqldump -u root -h 127.0.0.1 -p --set-gtid-purged=OFF abc > /data/mysqlBak/abc_20200206.s ...
- IIS网站部署配置
1.配置Session State
- Python——面向对象,简易学生信息管理系统
一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...
- 就不能换DB吗? 抽象工厂模式
15.1 就不能换DB吗? 15.2 最基本的数据访问程序 namespace 抽象工厂模式 { class Program { static void Main(string[] args) { U ...
- 【Java】简易Socket连接实现
客户端: import java.io.*; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.D ...
- 纪中21日T3 2118. 【2016-12-30普及组模拟】最大公约数
纪中21日T3 2118. 最大公约数 (File IO): input:gcd.in output:gcd.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto ...
- [Python机器学习]鸢尾花分类 机器学习应用
1.问题简述 假设有一名植物学爱好者对她发现的鸢尾花的品种很感兴趣.她收集了每朵鸢尾花的一些测量数据: 花瓣的长度和宽度以及花萼的长度和宽度,所有测量结果的单位都是厘米. 她还有一些鸢尾花的测量数据, ...