Vue.js(18)之 axios简单封装
基于vue-cli2.x封装axios
src目录
axios.js
import axios from 'axios' import { Indicator, Toast } from 'mint-ui' // request 拦截器 axios.interceptors.request.use(config => { Indicator.open({ text: '加载中...', spinnerType: 'snake' }) return config }, err => { Indicator.close(); Toast({ message: '请检查您的网络连接并重试', duration: 2000, className: 'mToast' }) return Promise.reject(err) }) // response 拦截器 axios.interceptors.response.use( config => { Indicator.close(); return config }, err => { Indicator.close(); Toast({ message: '请检查您的网络连接并重试', duration: 2000 }) Promise.reject(err) } ) export default axios
config.js
// 在 axios中,利用QS包装data数据 import Qs from 'qs' const config = { baseURL: 'http://www.****.top:8888/', url: '', method: 'get', params: {}, data: {}, timeout: 100000, withCredentials: false, responseType: 'json', headers: { 'Content-Type': 'application/json' }, maxContentLength: 10000, maxRedirects: 5, transformResponse: [function(data) { return data }], paramsSerializer: function(params) { return Qs.stringify(params) }, onUploadProgress: function(progressEvent) { // console.log('onUploadProgress...'); }, onDownloadProgress: function(progressEvent) { // console.log('onDownloadProgress...'); } } export default config
fetch.js
// 引入 请求拦截 配置 import $axios from "./axios" // 引入 请求参数 配置 import config from './config' config.headers.Authorization = window.sessionStorage.getItem('token') || '' // 封装成自己的方法 fetch = async function(url, method, request, other) { let response if(method == 'post') { config.data = request response = await $axios.post(url, request, config) } else if(method == 'get') { config.params = request response = await $axios.get(url, config) } console.log(response) return response } export default fetch
测试
.vue文件
<template> <div> <hr> <h1 @click="postJson">login-postJson</h1> <hr> <h1 @click="getJson">getJson</h1> <hr> <h1 @click="getUserList">getUserList</h1> </div> </template> <script> import mix from './Apitest-mixins.ts' export default { mixins: [mix] } </script>
.ts文件
import fetch from '../../request/fetch.js' export default { methods: { async postJson() { const params = { "username": "admin", "password": "123456" } let { data: res } = await fetch('/login', 'post', params) window.sessionStorage.setItem('token', res.data.token) console.log(res) }, async getJson() { let { data: res } = await fetch('/roles', 'get') console.log(res) }, async getUserList() { let params = { query: 'a', pagenum: 2, pagesize: 10 } const { data: res } = await fetch('/users', 'get', params ) console.log(res) } } }
遗留bug
请求头???百度了2天,问了同事也没有解决了,自己都奔溃了
Vue.js(18)之 axios简单封装的更多相关文章
- axios简单封装
写在最前面 新手前端刚刚接触vue,感觉真的好用.项目中需要使用axios,然后学习了一下.借鉴网上一些大佬的经验,现在分享一下axios的简单封装,如果有什么错误的地方,请大家指出. axios安装 ...
- Vue.js的安装及简单使用
一.Vue简介 二.Vue.js的安装 2.1.npm安装 2.1.1.node.js介绍及安装 简介: 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基 ...
- vue-axios当只调用vue.js又需要axios请求多时
可以将axios方法封装一个函数 (function () { ASK = { get:function (url,data,succFun,errFun) { axios.get(url,{ par ...
- vue axios 简单封装以及思考
先安装 axios npm install axios axios的详细介绍以及用法 就不多说了请 移步 github ➡️ https://github.com/axios/axios 下面是简单 ...
- vue.js中使用Axios
Axios为vue2.0官方推荐HTTP请求工具,之前的是vue-resource 在使用的过程中总结了两种使用方式: 1.和vue-resource使用类似 引入:import axios from ...
- 在使用Vue.js中使用axios库时,遇到415错误(不支持的媒体类型(Unsupported media type))
知识点:vue2.0中使用axios进行(put,post请求时),遇到415错误 解决办法:在axios的第三个参数config中,设置请求头信息'Content-Type': 'applicati ...
- vue.js提交按钮时简单的if判断表达式示例
简单的业务需求如下,看图说话 1:当充值金额没有填写的时候,会有Toast小弹框提示"请输入有效的充值金额" if (!this.money) { console.log('mon ...
- Vue.js(20)之 封装字母表(是这个名字吗0.0)
HTML结构: <template> <div class="alphabet-container"> <h1>alphabet 组件</ ...
- Vue.js(19)之 封装calendar组件
效果 需求 1.实现一个日历组件,如图: 2.显示某天的事项: 3.事项是模拟父组件请求接口返回的,数据格式如下: [ { id: '232', date: '2019-06-01', info: ' ...
随机推荐
- linux安装软件的几种方法----linux下编译安装软件的一般步骤
linux安装软件的几种方法: 一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd so ...
- firewalld学习-zone的使用和配置
原文地址:http://www.excelib.com/article/290/show zone文件标签名词解释 target:目标,这个前面学生也已经给大家介绍过了,可以理解为默认行为,有四个可选 ...
- 该虚拟机似乎正在使用中 如果该虚拟机未在使用请按获取所权T按钮获取他的所有权,否则,请按取消按钮以防损坏
虚拟机出现如下情况 不能够正常过使用,解决办法如下:直接进入上图中配置文件的目录下,然后删除所有的lck结尾的文件夹,然后重新启动, 然后file打开这个文件即可.重新进入虚拟机开机.
- 我的Grunt之旅-序章
时间:2018-03-05 13:52 事件:安装Grunt 相关网址: grunt官网:https://gruntjs.com node.js下载地址 :https://nodejs.org/en ...
- uboot的环境变量
https://www.cnblogs.com/biaohc/p/6398515.html uboot 环境变量实现原理: 首先我们先要搞清楚uboot中环境变量的作用,uboot中环境变量的作用就是 ...
- 010.CI4框架CodeIgniter, autoload自动加载自己的helper函数类
01.自己定义了一个helper类,里面有个函数用来输出 02.定义一个Controller基本类,我们以后用到的Controllers类都继承自这个类.其中自动加载helper函数如图所示: 03. ...
- 5 GC 参数
- mysql DDL语言
- java分词技术(自动提取关键词,段落大意)hanlp
这是老师大作业需要的技术才知道hanlp这个外部包 使用方法 包以及数据如下GIT下载很慢我传百度云了 链接:https://pan.baidu.com/s/14a22v1g_CAQN-G-k8 ...
- ApplicationListener监听使用ContextRefreshedEvent事件类型会触发多次
@Componentpublic class TestApplicationListener implements ApplicationListener<ContextRefreshedEve ...