什么是 axios?

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

特性
-从浏览器中创建 XMLHttpRequests
-从 node.js 创建 http 请求
-支持 Promise API
-拦截请求和响应
-转换请求数据和响应数据
-取消请求
-自动转换 JSON 数据
-客户端支持防御 XSRF

安装

使用 npm:

$ npm install axios

使用 bower:

$ bower install axios

使用 cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

在项目中使用

引入axios到
src\utils\request.js

import axios from 'axios'import store from '@/store'// // create an axios instance
// 创建一个axios实例
const service = axios.create({// baseURL: 'http://ihrm-java.itheima.net', // 设置axios请求的基础的基础地址baseURL: process.env.VUE_APP_BASE_API, // 从环境变量设置基地址timeout: 5000 // 定义5秒超时
})// 响应拦截器
service.interceptors.response.use(response => {if (response.data.success) {// 操作成功return response.data} else {// 如果success为false 业务出错,直接触发reject// 被catch分支捕获return Promise.reject(new Error('请求失败'))}
}, async error => {console.log('请求出错啦', error)if (error.response.data.code === 10002) {// 这个表示token失效的10002是和后端商量好的 并不是http默认的console.log('token失效')// 如果响应回来的code=10002 调用actions中的user模块中的logout方法await store.dispatch('user/logout')// .vue -- this.$route.fullPath//  .js -- router.currentRoute.fullPath// router.push('/login?return_url=' + encodeURIComponent(router.currentRoute.fullPath))}// 如果有错误 打印出来错误console.dir(error)console.log(error)return Promise.reject(error)// 返回执行错误 让当前的执行链跳出成功 直接进入 catch
})// 请求拦截器
service.interceptors.request.use(config => {// 从vuex中拿到保存的tokenconst token = store.state.user.tokenif (token) {// 如果token存在 请求头里加上'Authorization'config.headers['Authorization'] = `Bearer ${token}`}return config
}, error => {// 如果请求有错误 打印出错误console.log(error)// 返回执行错误 让当前的执行链跳出成功 直接进入catchreturn Promise.reject(error)
})
// 最后一定要导出axios实例
export default service

引入axios实例到
src\api\user.js (这个实例的名字是可以修改的,不一定要与上面的实例一致)

import request from '@/utils/request'/*** 登录请求* @param {mobile,password} data* @returns*/
export function login(data) {return request({url: '/sys/login',method: 'post',data})
}// 请求用户信息
export function getProfile() {return request({url: '/sys/profile',method: 'post'})
}// 请求用户头像
export function getUserDetailById(id) {return request({url: `/sys/user/${id}`,method: 'get'})
}

项目中一般来说都是默认在src/api中写接口发请求,并且api里的请求.js文件也是分模块的,比如user.js里只包含用户信息请求,permisssion.js里只包含权限信息请求,department.js里只包含部门信息请求。

axios是什么?如何在项目中使用?相关推荐

  1. vue php axios 跨域,在vue项目中,使用axios跨域处理

    下面我就为大家分享一篇在vue项目中,使用axios跨域处理,具有很好的参考价值,希望对大家有所帮助. 跨域,一个很是让人尴尬的问题,有些人可以在后台中设置请求头,但是很多前端并不具备后台的知识,并无 ...

  2. vue 三、Axios (ajax 框架) 在vue 项目中的使用

    前篇:ajax 与 axios的区别 刚刚接触axios有好多疑惑.它和ajax有什么关系呢和区别呢?接下来一起看下: 1.区别 axios是通过promise实现对ajax技术的一种封装,就像jQu ...

  3. 在vue项目中:统一封装 Axios 接口与异常处理

    在vue项目中:统一封装 Axios 接口与异常处理 参考文章: (1)在vue项目中:统一封装 Axios 接口与异常处理 (2)https://www.cnblogs.com/itgezhu/p/ ...

  4. 在vue项目中对axios进行封装

    在vue项目中对axios进行封装 1.引入axios,qs模块 import axios from 'axios'; import Qs from "qs"; import st ...

  5. Nuxt项目中使用axios

    把nuxtjs-axios模块添加到项目 yarn add @nuxtjs/axios // 使用yarn来安装模块npm install @nuxtjs/axios // 使用npm来安装模块 注: ...

  6. axios nodejs 上传图片_vue项目中使用axios上传图片等文件操作

    axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XMLHttpRequest 从 node.js 发出 ...

  7. axios,vue-axios在项目中的应用

    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 关于axios的功能: 1,从浏览器中创建XMLHttpRequests 2,从node.js常见Htt ...

  8. vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园

    在开发vue项目中,请求是不可缺少的,在发送请求时常常需要统一处理一些请求头参数等设置与响应事件,这时利用请求拦截器再好不过. 这里以axios请求为例 实现了设置统一请求头添加token, 其中to ...

  9. Vue学习笔记(二)—— vue项目中使用axios

    一.文档链接 axios文档 vue开发插件 二.axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XML ...

最新文章

  1. 王敏捷 - 深度学习框架这十年!
  2. Mocha+should+Karma自动化测试教程
  3. IE 11 预览版初体验
  4. 利用 Arthas 解决启动 HDFS StandbyNameNode 加载 EditLog 慢的问题
  5. 在powerpoint中默认的视图是_专升本计算机《Word、Excel、Powerpoint》知识点
  6. php过滤文件中的空行,如何从PHP文本中删除空行?
  7. 查看mysql服务器位置,查看mysql服务器ip地址
  8. CCI指标详解及实战用法
  9. 三菱plc控制步进电机实例_电工想做PLC工程师?那步进电机的编程控制指令你一定要了解...
  10. 人生三重界---看山不是山,看水不是水
  11. 用卷积神经网络(CNN)识别文字
  12. linux 'stack'未声明(在此函数内第一次使用,未定义的引用`__stack_chk_fail'
  13. 考研日语线上笔记(八):完型易混易考知识点梳理篇
  14. LabVIEW字符串中显示多种字体
  15. Error: `fsevents` unavailable (this watcher can only be used on Darwin)
  16. 高屋建瓴-------谈观看朱老师视频有感
  17. 因式分解机(Factorization Machines,FM )
  18. 智慧医疗读书笔记(1-2)
  19. DIY 一个树莓派无人机
  20. vs2019找不着工具箱了_VS2010看不到自定义控件_VS2010工具箱上找不到自定义控件...

热门文章

  1. 广州APP开发公司:母婴APP开发解决方案
  2. 手机升级鸿蒙后流畅度,留给安卓时间不多了!新版鸿蒙系统再传好消息:流畅度媲美IOS...
  3. Java String split方法性能分析
  4. Flask项目部署云服务器 CentOS7.3+Redis+MySQL+Flask+Nginx+Gunicorn +Supervisorctl
  5. 倾斜摄影超大场景的三维模型的顶层合并的纹理压缩与抽稀处理技术分析
  6. 深入剖析 redis 事务机制
  7. PHPCMF+php+日记(一)
  8. 其他sql注入写入webshell的方式
  9. 首个生成式AI标准正式发布,希尔贝壳作为工作组成员单位参与
  10. 教程向|如何更好还原褶皱,ZBrush雕刻褶皱的技巧