前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue全局拦截器配置

vue全局拦截器配置

作者头像
流眸
发布2019-08-12 16:06:13
1.8K0
发布2019-08-12 16:06:13
举报
关于请求拦截器

  项目中,我们经常遇到请求后台接口时要做后天返回的 code码验证判断。code码通常是一个特定的数值,比如一般返回 200作为正常请求,返回其他作为数据异常或者请求异常等。如果接口量足够大,那么每一个接口都需要做正常/异常处理。为满足统一管理,那么在全局请求拦截器便应劫而出。

作用
  • 统一管理
  • 路由请求拦截 => request
  • 路由响应拦截 => response
实例
1.安装axios及qs
npm install axios --save-dev    //安装axios

npm install qs --save-dev     //安装qs
2.新建一个js文件
├── project
│  ├── build
│  ├── config
│  ├── node_modules
│  ├── src
│  │  ├── assets
│  │  │  ├── request.js    // 我在这里新建了一个js文件来配置拦截器
│  │  ├── components
│  │  ├── router
│  │  ├── App.vue
│  │  ├── main.js
│  ├── static    
│  ├── test
│  ├── .babelrc
│  ├── .editorconfig
│  ├── .gitignore
│  ├── .postcssrc.js
│  ├── index.html
│  ├── package-lock.json
│  ├── package.json
│  ├── README.md
3.js拦截器配置如下:
import axios from 'axios'    //引入axios
import qs from 'qs'    //引入qs qs可将数据转换为FormData格式

// axios默认配置
axios.defaults.timeout = 10000;   // 超时时间
axios.defaults.baseURL = 'https://www.demo.com';  // 公用地址

// 路由请求拦截
// http request 拦截器
axios.interceptors.request.use((config) => {
    // 数据格式化
    config.data = qs.stringify(config.data);
    // 给请求头加键值对
    config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
    return config;
}, (error ) => {    // 错误信息
    return Promise.reject(error.response);
});

// 路由响应拦截
// http response 拦截器
axios.interceptors.response.use(
    (response) => {
        if (response.data.code !== 200) {
            // 异常请求要做的事
        } else {
            // 正常请求要做的事
        }
    },(error) => {
    // 返回接口返回的错误信息
        return Promise.reject(error.response)   
    }
);


export default axios;
4.main.js配置
// 引入该配置文件
import axios from './assets/axiosRequest'

// 注册到全局
Vue.prototype.$axios = axios;
5.使用
// 要发送的数据
let params = {
    name: 'AAA',
    number: '10100110',
    age: '18'
};

// post请求为例  url不用写公共部分,直接写后面即可
this.$axios.post('/test',params
).then((res) => {
    debugger;
}).catch((error) => {
    debugger;
})
总结

  http全局拦截器配置完毕,不仅可在response中统一管理返回状态,而且可在request中动态添加request headers,在实际项目中有很大的运用空间。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 流眸 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于请求拦截器
  • 作用
  • 实例
    • 1.安装axios及qs
      • 2.新建一个js文件
        • 3.js拦截器配置如下:
          • 4.main.js配置
            • 5.使用
            • 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档