博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零开始搭建vue项目 请求拦截器 响应拦截器
阅读量:6087 次
发布时间:2019-06-20

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

1.安装vue cli,基于webpack模版

 基于webpack模版初始化一个名称为admin的项目vue init webpack admin-vue

 
1 npm install -g vue-cli2 vue init webpack my-project3 cd my-project4 npm install5 npm run dev 

文档数结构

1 . 2 ├── build webpack打包相关的配置文件目录 3 ├── config webpack打包相关的配置文件目录 4 ├── node_modules第三方依赖包 千万不要动它 5 ├── src项目源码 6 │   ├── assets存储资源,例如 css、 img、 fonts 7 │   ├── common存储一些公共的业务组件 8 │   ├── components存储所有组件 9 │   ├── router路由10         └──  index.js路由配置文件11 │   ├── App.vue  单页面应用程序的根组件12 │   └── main.js  开机键,负责把根组件替换到根节点13 ├── static  可以放一些静态资源14 │   └── .gitkeep15 ├── .babelrc  es6转es5配置文件,给 babel 编译器用的16 ├── .editorconfig 17 ├── .eslintignore  eslint配置文件18 ├── .eslintrc.js  eslint配置文件19 ├── .gitignore  git忽略上传文件20 ├── index.html  单页面引用程序的单页21 ├── package.json 项目依赖项等信息22 ├── package-lock.json23 ├── .postcssrc.js  postcss类似于 less、sass 预处理器24 └── README.md

 

2.导入ElementUI

  •  
1 安装 依赖 npm install element-ui2 复制表单源码3 安装axios   npm i axios

 

3.封装axios扩展为vue插件

  •  axios文档地址:
  • vue文档地址: 开发插件
 
1 import axios from 'axios' 2 import { getToken } from '@/assets/js/auth' 3 const http = axios.create({ 4   baseURL: 'http://localhost:8888/api/private/v1' 5 }) 6 ​ 7 // vue插件 8 // https://cn.vuejs.org/v2/guide/plugins.html#开发插件 9 const httpPlugin = {}10 httpPlugin.install = function (Vue, options) {11   // 4. 添加实例方法12   Vue.prototype.$http = http13 }14 export default httpPlugin15 // 5 在main.js加载16 // vue.use(httpPlugin)17 ​
  • 在全局组件中调用$http来发起请求例如

 

请求拦截器

1 // https://github.com/axios/axios 2 // axios 配置请求拦截器 3 http.interceptors.request.use(function (config) { 4   // Do something before request is sent 5   if (config.url != '/login') { 6     config.headers['Authorization'] = getToken() 7   } 8   return config; 9 }, function (error) {10   // Do something with request error11   return Promise.reject(error);12 });

响应拦截器

// axios 配置响应拦截器// Add a response interceptoraxios.interceptors.response.use(function (response) {  // Do something with response data  const { meta } = response.data  if (meta.status === 403) {    window.alert('你没有权限执行该操作!')  } else if (meta.status === 401) {    // 401 token 失效 跳转到登录组件    router.push({      name: ' login',      query: {        redirect: window.location.hash      }    })  }  return response;}, function (error) {  // Do something with response error  return Promise.reject(error);});

转载于:https://www.cnblogs.com/zhtian/p/9221722.html

你可能感兴趣的文章
git 对 Microsoft Word 进行版本控制
查看>>
Redis详解(七)------ AOF 持久化
查看>>
HashMap原理阅读
查看>>
文件上传的几个 - 示例
查看>>
“新IT”助推上海浦东“新经济”
查看>>
WPF 列表开启虚拟化的方式
查看>>
一入前端深似海,从此红尘是路人系列第十二弹之移动端模拟IOS虚拟按钮效果...
查看>>
查找一 线性表的查找
查看>>
Android传递Bitmap的两种简单方式及其缺陷
查看>>
性能不好怎么办?对着清单撸一遍[转]
查看>>
一文读懂物体分类AI算法:LeNet-5 AlexNet VGG Inception ResNet MobileNet
查看>>
量子十问之一:量子究竟是什么?读过你就不会相信“量子水”了
查看>>
宜信陈欢:为何你要用区块链技术?真的准备好了吗?
查看>>
Android 渗透测试学习手册 第四章 对 Android 设备进行流量分析
查看>>
OpenCV的+安卓+号牌识别(OpenCV + Android + 图像水平矫正)
查看>>
话说区块链,它真的不是比特币
查看>>
展望VR AR 2017,旅游、营销以及家装行业或许会火一把
查看>>
“九”答不可 | 如何设计量子计算机?科学家称其速度存在理论上限
查看>>
蓝凌副总裁夏敬华:智明当下,慧看未来——移动互联下企业知识管理应用趋势...
查看>>
Mac下的SSH插件(默认自带)
查看>>