博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
axios 拦截器的用法
阅读量:4094 次
发布时间:2019-05-25

本文共 1915 字,大约阅读时间需要 6 分钟。

什么是拦截器

拦截器就是拦截每一次的请求和响应,然后进行相应的处理。请求拦截器,它可以统一在你发送请求前在请求体里加上token;响应拦截器,是在接受到响应之后进行的一些操作,比如,服务器返回登录状态失效,需要重新登录的时候,就给它跳到登录页面;

创建 axios 实例

const Axios = axios.create({
baseURL: HOST, // 请求的域名 timeout: 10000000000, // 响应超时时间 responseType: "json", withCredentials: true, // 跨域请求是否要携带cookie headers: {
'Content-Type': 'application-json/x-www-form-urlencoded;charset=utf-8', } });

请求拦截器

//在发送请求之前做的一些操作,例如加上tokenAxios .interceptors.request.use( config => {
// 为请求头对象添加 token 验证的 Authorization 字段 config.headers.Authorization = window.sessionStorage.getItem('token') return config}, error => {
//对请求错误做些什么 return Promise.reject(error)})

响应拦截器

//接收到响应后要做些什么,比如跳转到登录页Axios.interceptors.response.use(response => {
response => {
//拦截响应,做统一处理 if (response.data.code) {
switch (response.data.code) {
case 1002: store.state.isLogin = false router.replace({
path: 'login', query: {
redirect: router.currentRoute.fullPath } }) } } return response}, error => {
//对响应错误做些什么 return Promise.reject(error)})

对每个请求方式进行封装

export function requestGet(url, query) {
// 查 return Axios.get(url, {
params: query || {
} }) .then((res) => {
return Promise.resolve(res.data) console.log(res.data); }) } export function requestPost(url, data) {
// 改 return Axios.post(url, data) .then((res) => {
return Promise.resolve(res.data) }) } export function requestPut(url, data) {
// 增 return Axios.put(url, data) .then((res) => {
return Promise.resolve(res.data) }) } export function requestDelete(url) {
// 删 return Axios.delete(url) .then((res) => {
return Promise.resolve(res.data) }) }

应用

最后把封装的实例在需要的地方导入就可以了。

转载地址:http://oxvii.baihongyu.com/

你可能感兴趣的文章
通过Maven管理项目依赖
查看>>
通过Spring Boot三分钟创建Spring Web项目
查看>>
Spring的IoC(依赖注入)原理
查看>>
Guava快速入门
查看>>
Java编程基础:static的用法
查看>>
Java编程基础:抽象类和接口
查看>>
Java编程基础:异常处理
查看>>
Java编程基础:了解面向对象
查看>>
新一代Java模板引擎Thymeleaf
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
Spring Boot构建简单的微博应用
查看>>
Spring处理表单提交
查看>>
Spring MVC异常处理
查看>>
Leetcode 1180. Count Substrings with Only One Distinct Letter [Python]
查看>>
PHP 7 的五大新特性
查看>>
php使用 memcache 来存储 session
查看>>
php实现socket(转)
查看>>
PHP底层的运行机制与原理
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>