axios的配置   公共路径配置    拦截器的使用

 //这个文件是根组件 new Vue,所有所需的模块和对象都要在new Vue之前配置好

 import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css' //手动引入
import axios from 'axios' //引入axios文件
//将axios添加到vue的原型对象中,
// 实例对象可以直接使用原型对象中的属性和方法
//所有的组件都是vue的实例,所有组件都可通过 this.$http使用axios
// 说明:只要是像axios这样得第三方库(与vue没有任何关系),都应该通过这种方式统一去导入
Vue.prototype.$http=axios //以后再组件中 使用 this.$http就可使用axios //配置公共路径
// 配置好公共路径后,每次使用axios发送请求,只需要写当前接口的路径(比如'/product')
// axios在发送请求之前,会将baseUrl + '/product' 得到完整的路径,才会发送请求
axios.defaults.baseURL='http://localhost:8888/api/private/v1' // axios.defaults.withCredentials=true //让axios的请求携带验证信息到服务端(钥匙) // 只要配置了拦截器,那么所有的请求都会走拦截器
// 因此,可以在拦截器中统一处理headers(处理:除了登录接口以外的所以接口,都需要将token传递给服务器)
// 请求拦截器(Add a request interceptor )
axios.interceptors.request.use(
function (config) {
//在请求发送之前做一些事情
// endsWith 字符串的方法,用来判断是不是以参数结尾的,如果是返回值为true
if(!config.url.endsWith('/login')){// 判断如果是登录接口,就不需要添加 Authorization 请求头
config.headers['Authorization']=localStorage.getItem('token') //将token设置在请求头,传递给服务器接口,这样才能正确的调用这个接口
}
return config;
},
); // 响应拦截器(Add a response interceptor)
axios.interceptors.response.use(
function (response) {
//在获取到响应的时候做一些事情,
if(response.data.meta.status===401){//只要token失效,就跳转回登录页面
//因为现在不是在组件中,因此无法通过this.$router来访问到路由实例
// 但是可以直接通过 上面导入的路由模块中的 router来访问到路由
router.push('/login') //跳转到登录页
localStorage.removeItem('token')
}
console.log( response )
return response;
},
); //导入全局css样式 @表示src
import '@/assets/index.css' Vue.config.productionTip = false Vue.use(ElementUI) new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')

vue中 aixos 常用配置 aixos拦截器 interceptors的使用的更多相关文章

  1. 在struts2中配置自定义拦截器放行多个方法

    源码: 自定义的拦截器类: //自定义拦截器类:LoginInterceptor ; package com.java.action.interceptor; import javax.servlet ...

  2. axios在vue中的简单配置与使用

    一.axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:https://hzzly.github.io/2017/03/12/ ...

  3. SpringBoot 03: 常用web组件 - - - 拦截器 + Servlet + 过滤器

    常用web组件 拦截器 Servlet 过滤器 使用思想 创建自定义类 实现或者继承框架里的接口或类 将自定义类注册到框架中 使用自定义类 拦截器 说明 拦截器是SpringMVC中的一种对象,能拦截 ...

  4. 通过配置http拦截器,来进行ajax请求验证用户登录的页面跳转

    在.NET中验证用户是否登录或者是否过期,若需要登录时则将请求转向至登录页面. 这个流程在进行页面请求时是没问题的,能正确进行页面跳转. 然而在使用xmlhttprequest时,或者jq的getJs ...

  5. 配置struts2拦截器

    <!-- 配置拦截器 -->        <interceptors>            <!-- 声明拦截器 -->            <inte ...

  6. spring boot配置springMVC拦截器

    spring boot通过配置springMVC拦截器 配置拦截器比较简单, spring boot配置拦截器, 重写preHandle方法. 1.配置拦截器: 2重写方法 这样就实现了拦截器. 其中 ...

  7. Sturts2几个常用内建拦截器的介绍

    Sturts2几个常用内建拦截器的介绍:1)conversation:这是一个处理类型转换错误的拦截器,它负责将类型转换错误从ActionContext中取出,并转换成Action的FieldErro ...

  8. SpringMVC配置了拦截器(interceptors)却显示不出css、js样式的解决办法

    首先因为在web.xml里面配置了 <filter-mapping> <filter-name>characterEncodingFilter</filter-name& ...

  9. SpringBoot中过滤器、监听器以及拦截器

    属于javax.servlet所提供的Api 拦截器原理 简单来讲是通过动态代理实现,被访问的目标方法通过代理类(方法)来执行,这样我们就可以在真正要执行的方法执行前.后做一些处理: 通过拦截器这种方 ...

随机推荐

  1. 日期格式化:SimpleDateFormat【线程不安全】、FastDateFormat和Joda-Time【后两个都是线程安全】

    SimpleDateFormat是线程不安全的,不能多个线程公用.而FastDateFormat和Joda-Time都是线程安全的,可以放心使用. SimpleDateFormat是JDK提供的,不需 ...

  2. 第五节:从一条记录说起——InnoDB记录结构

    <MySQL 是怎样运行的:从根儿上理解 MySQL>第五节:从一条记录说起——InnoDB记录结构 准备工作 现在只知道客户端发送请求并等待服务器返回结果.    MySQL什么方式来访 ...

  3. Strcpy,strcpy使用注意

    一.char *strcpy(char *dest, const char *src) 参数 dest -- 指向用于存储复制内容的目标数组. src -- 要复制的字符串. 注意: 1.dest需要 ...

  4. 前后端分离下的CAS跨域流程分析

    写在最前 前后端分离其实有两类: 开发阶段使用dev-server,生产阶段是打包成静态文件整个放入后端项目中. 开发阶段使用dev-server,生产阶段是打包成静态文件放入单独的静态资源服务器中, ...

  5. note2

  6. Mac OS 10.15系统入门教程 系统语言输入法详解

    对于一些Mac新手来说呢还不知道偏好设置到底是什么?有什么用处?其实Mac系统内的几乎所有的系统相关的设置都会在系统偏好设置内出现. 切换系统语⾔在语言与地区设置中拖拽左侧的语言条目就可以切换系统的语 ...

  7. 【leetcode】1024. Video Stitching

    题目如下: You are given a series of video clips from a sporting event that lasted Tseconds.  These video ...

  8. linux0.11内核源码——用户级线程及内核级线程

    参考资料:哈工大操作系统mooc 用户级线程 1.每个进程执行时会有一套自己的内存映射表,即我们所谓的资源,当执行多进程时切换要切换这套内存映射表,即所谓的资源切换 2.但是如果在这个进程中创建线程, ...

  9. Instagram几个queryhash

    page_query_hash 42323d64886122307be10013ad2dcc44comment_query_hash 33ba35852cb50da46f5b5e889df7d159f ...

  10. 解决修改 Linux 下的 PHP 环境变量不生效的方法

    这个问题出现服务器有多个 PHP 版本,php -v和phpinfo()显示两个不同的版本 最近真的,都给朋友解决问题了... phpinfo查看的 php 版本是 7.2.6,到 bash 去使用p ...