一、安装

1、 利用npm安装npm install axios --save

--save:安装在生产环境

二、例子

要想统一处理所有http请求和响应,就得用上 axios 的拦截器。

axios.js

import axios from 'axios'
// @ == src
import baseUrl from '@/config'/*
* 增加请求拦截器
*/
axios.interceptors.request.use((config) => {// 预处理请求的信息return config
}, (error) => {// 预处理请求有异常error时抛出错误return Promise.reject(error)
})/*
* 增加相应拦截器
*/
axios.interceptors.response.use((response) => {// 预处理相应的数据return response
}, (error) => {// 错误返回 状态码验证return Promise.reject(error)
})/*** 返回axios方法* @param url(如果传绝对地址则baseURL不会追加到url之前)* @param method* @param timeout* @param data* @param headers* @param dataType* @returns {AxiosPromise}*/
export default function (url, {// 默认求情方式postmethod = 'post',// 超时timeout = 10000,// 请求主题data = {},// 请求头headers = {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8;'},// 文件类型dataType = 'json'
}) {// 可根据不同method动态配置headersif (method === 'get') {headers = Object.assign({}, headers)} else {headers = Object.assign({}, headers)}const config = {method: method,timeout: timeout,url: url,// 在外部文件配置axios的基础路径 ip地址baseURL: baseUrl.URL_EASYMOCK,data: data,headers: headers,dataType: dataType}return axios(config)
}

config.js

配置请求的ip端口号地址

// baseUrlconst DOMAIN_NAME = {
// ip:端口号URL_EASYMOCK: 'http://localhost:3030'
}export default DOMAIN_NAME

api.js

所有的请求都写在一个对象中,方便调用

import axios from './axios'
const requests = {getUser (data = {}) {// user 请求接口return axios('user', {// 请求方法method: 'get',// 请求体data: data})}
}
// 导出对象,然后在全局注册或在单个vue文件下调用
export default requests

api.vue

调用api.js中的方法

<template><div class="api">    </div>
</template><script>
// 在文件中调用import axios from '@/server/api';export default{data() {return {msg: 'hello vue'}},methods: {/*** 接口请求*/getUser() {// axios 本省就是prmoise分装的axios.getUser().then((res) => {console.log(res);}).catch((err) => {console.log(err);})}}}
</script><style scoped>
</style>

在main.js中声明使用

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
// 引入请求数据的对象
import axios from '@/server/api'Vue.config.productionTip = false
// 全局声明
Vue.prototype.$axios = axios
/* eslint-disable no-new */
new Vue({el: '#app',router,components: { App },template: '<App/>'
})

app.vue请求改成,不用再每个vue文件中引入

 import axios from '@/server/api';
/*** 接口请求*/getUser() {// axios 本省就是prmoise分装的axios.getUser().then((res) => {console.log(res);}).catch((err) => {console.log(err);})}

vue axios 拦截器配置与封装相关推荐

  1. Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装

    1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限.服务器响应不符预期的问题,但是总不能每个页面都做单独处理吧,于是想到axios提供了拦截器这个好东西,再于是就出现了本文. 2. ...

  2. Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装 1

    1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限.服务器响应不符预期的问题,但是总不能每个页面都做单独处理吧,于是想到axios提供了拦截器这个好东西,再于是就出现了本文. 2. ...

  3. vue 请求拦截器配置

    按如下步骤进行 1.request.js内容:http request请求拦截器和http response服务器响应拦截器配置 请求拦截器有一个Authorization认证,判断登录状态之后再决定 ...

  4. vue axios拦截器的封装

    // request.js import axios from 'axios' import qs from 'qs'// 创建axios实例 const service = axios.create ...

  5. Vue axios拦截器使用

    axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端.这篇文章主要介绍了vue/axios请求拦截的相关知识,需要的朋友可以参考下 axios使用拦截器 在请求或响应 ...

  6. axios vue 加载效果动画_vue中使用axios拦截器实现数据加载之前的loading动画显示 @劉䔳...

    首先新建一个 loading.vue组件,写loading动画效果 .loader { width: 100%; height: 100%; display: flex; align-items: c ...

  7. axios 拦截器不生效填坑

    Vue axios拦截器不生效填坑: 1.let instance = axios.create();//此处创建拦截器,拦截器处理过程省略 2.Vue.prototype.$http = insta ...

  8. vue2中使用axios,以及axios拦截器的配置

    目录 一.vue2项目中如何实现异步请求 1.axios:是一个基于Promise的网络请求库.既可以在node.js(服务器端)使用,也可以在浏览器端使用 2.vue中的使用方法 ​ (2)引用方法 ...

  9. Vue的axios拦截器

    Vue的axios拦截器 为什么要使用拦截器? ​ 在页面发送http请求,很多情况我们要对请求和其响应进行特定的处理,如:判断token,设置请求头.如果请求数非常多,单独对每一个请求进行处理会变得 ...

最新文章

  1. 台式计算机怎么加一个硬盘,如何再安装一个台式计算机硬盘驱动器?如何在计算机安装中添加额外的硬盘...
  2. WPF动画之后属性值无法改变
  3. 工业机器人行业研究报告
  4. cglib动态代理和JDK动态代理
  5. VC程序初始化隐藏窗体
  6. Qt工作笔记-获取选中的文件名(lastIndexOf的使用)
  7. 教你如何塑造JavaScript牛逼形象
  8. 买买买!iPhone 13全系曝光:价格给力
  9. 第 8 章 建造者模式
  10. tensorflow学习5----GAN模型初探
  11. SharePoint:扩展DVWP - 第34部分:使用图标形式的表单操作链接
  12. ESD-PCIe 402-1 CAN卡驱动安装及测试
  13. firebug尺寸标尺消失不显示问题
  14. python的猴子补丁(Monkey Patching)
  15. C# WPF 基于Socket的企业聊天软件IM(源码)
  16. Mangos模拟器综合资源贴
  17. 关于服务器的使用——深度学习菜鸡入门(1)
  18. A.Jelly (简单BFS三维)
  19. webStorm 3.0配置使用主题背景色等
  20. 你一定没见过这么有意思的电路板

热门文章

  1. 【算法leetcode】2331. 计算布尔二叉树的值(多语言实现)
  2. 入职前端开发一年的感受
  3. Java web开发——Servlet详细介绍
  4. Android冻结程序,Android Studio 3.0和应用程序冻结
  5. IM——直播互动场景
  6. 字符串括号匹配c语言,数据结构C语言括号的检验源程序 , 数据结构(C) 请用类C语言实现括号匹配的检验这个算法...
  7. InDesign 教程:如何创建和编辑图层?
  8. 新帽式滑环应用安防高速球机
  9. h0060. 哥德巴赫猜想
  10. matlab .p文件