简单封装get,post请求,携带token控制

先导入axios  和qs包

创建http.js文件模块进行axios封装

每个代码都有注释,方便初学者学习

import axios from "axios";
//带三方类库
import qs from 'qs'
// 配置不同环境下,调用不同接口switch(process.env.NODE_ENV){// 生产环境,部署到服务器上的环境case 'production':axios.defaults.baseURL='http://api.zhengqinan.cn';break;//设置测式环境的接口地址case 'text':axios.defaults.baseURL='http://api.zhengqinantext.cn';break;//开发环境接口地址default:axios.defaults.baseURL='http://api.kaifa.cn'
}
/*** 设置超时时间和跨域是否允许携带凭证*/
axios.defaults.timeout=10000  //设置十秒
axios.defaults.withCredentials=true ;//例如:登录校验session和cookie
/*** 设置请求数据参数传递的格式,默认是json格式,但是在登录校验中后台一般设置请求格式:x-www-form-urlencoded(name=xxx,age=xxx)* 看服务器要求什么格式*/
axios.defaults.headers['Content-Type']='application/x-www-form-urlencoded' //声明请求格式
axios.defaults.transformRequest=data=>qs.stringify(data)  //qs是第三方库,转换为x-www-form-urlencoded
/*** 设置请求拦截器:----在项目中发请求(请求没有发出去)可以做一些事情* 客户端->[请求拦截器]->服务器端* token校验(JWT):接收到服务器的token,存储到vuex/本地存储中,每次向服务器发送请求,我们应该把token带上* config :发起请求的请求配置项*/
axios.interceptors.request.use(config=>{let token=localStorage.getItem('token')token && (config.headers.Authoriztion=token)return config
},error=>{return Promise.reject(error)
})
/*** 设置响应拦截器* 服务器端返回信息->[响应拦截器]->客户端js获取到信息* response中包含属性:* data:相应数据,status:响应状态码,statusText:响应状态信息,headers:响应头,config:响应提供的配置信息,request*/
axios.interceptors.response.use(response=>{return response.data //将主体内容返回  axios.get().then(result=>{拿到的就是响应主体})
},error=>{let { response}=error// 如果有返回结果if(response){switch(response.status){//这里面根据公司需求进行写case 404://进行错误跳转之类break;  }}else{//服务器没有返回结果 分两种情况 断网  服务器崩了if(!window.navigator.onLine){//断网处理:跳转到断网页面return}return Promise.reject(error)}
})

2.这里可以分页面进行创建接口请求文件

使用post 和get进行请求

import axiosHttp from './http.js'
export const getuserinfor=(params)=>{return axiosHttp({method:'get',url:'user/xxxx',params})
};
export const login=(data)=>{return axiosHttp({method:'post',url:'login/xxxxx',data,})
}

3.在代码中进行使用  先导入模块,再进行使用

<template></template><script>
import { login } from "../api/user.js";
export default {data() {return {};},methods: {async getlogin() {let params = {emile: 123,name: "zhangsna",};let data = await login(params);},},
};
</script><style>
</style>

Axios 二次封装(超详细)相关推荐

  1. 原生 Ajax 封装 和 Axios 二次 封装

    AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允 ...

  2. axios二次封装以及API接口统一管理

    前端向服务器发送请求,使用的方法有很多: XMLHttpRequest.fetch.JQ.axios 1.axios二次封装 二次封装axios是为了请求拦截器.响应拦截器. 请求拦截器:可以在发送请 ...

  3. axios二次封装之get请求

    今天因为项目上跟后端联调接口时 , 有一个 get 请求 , 需要携带三个参数给后端 但是原本项目内简单封装 axios 的 get 请求就显得不那么简便了 (使用了在 url 后面进行拼接携带参数的 ...

  4. vue:axios二次封装,接口统一存放

    https://www.jianshu.com/p/9077baa9d543 一.基于框架:vue 二.基于http库:axios 三.基本用法:     1.通过node安装: npm instal ...

  5. Js实现拖拽 --面向对象封装( 超详细中文注释)

    这类文章网上的很多.我只是做了详细的中文注释.便于大家理解. --废话不多说直接上源码  (用到的图片请随便自己代替) javascript代码部分: 1 /**js拖拽特效封装*/ 2 //关于js ...

  6. ts版axios二次封装

    src中创建一个api文件夹,里面有两个文件 request.ts import axios from "axios";export const Service = axios.c ...

  7. Java记账本小项目二(图解超详细)

    继续上一篇博客,博客地址在这:https://blog.csdn.net/qq_41115379/article/details/112795150 接下来根据功能演示如何开发一个一个的Panel M ...

  8. axios如何二次封装

    axios二次封装的五种方法 为什么要封装 axios 的 API 很友好,你完全可以很轻松地在项目中直接使用. 不过随着项目规模增大,如果每发起一次HTTP请求,就要把这些比如设置超时时间.设置请求 ...

  9. axios介绍以及对axios进行二次封装

    目录 一.axios基础 1.什么是axios? 2.axios的安装 3.axios常用配置项 4.axios和ajax的区别 二.使用axios发送请求 1. 发送get无参请求 2. 发送get ...

  10. 三、Hive数据仓库应用之Hive数据操作语言(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)

    Hive远程模式部署参考: 一.Hive数据仓库应用之Hive部署(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7) Hive数据定义语言 ...

最新文章

  1. Docker 1.13 管理命令
  2. a b和c 15 java_1011. A+B和C (15)
  3. sphinx mysql存储引擎_基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计...
  4. android 虚拟键盘改变单个按键颜色_这款机械键盘很特别!一亿次按键寿命还有高颜值...
  5. idea 删除补丁_带着好奇心去探索IDEA
  6. 怎么自己制作一个U盘
  7. 非线性动力学常见的分析方法包括
  8. 计算机如何重新连接打印机,电脑打印机脱机怎么重新连接
  9. JetBrains下载历史版本(IDEA、PyCharm、WebStorm、PhpStorm等)
  10. 最通俗易懂的理解什么是数据库
  11. 本机可以访问8080端口,外网不能访问的解决方案
  12. 什么是RS485总线?怎么使用RS485总线?一文了解清楚
  13. python strftime 中文 年 月 日
  14. hive自定义分区器
  15. FLEX绘制行政区域地图源码
  16. 用户协议html代码,微信小程序同意用户协议确认投稿页面设计制作开发教程
  17. java 水仙花数_如何理解Java中的水仙花数?
  18. html页面长截图或生成pdf
  19. cmakelist官方教程_CMakeLists编辑简明教程
  20. 如何制作相册视频?简单3步做出好看的效果

热门文章

  1. 项目变更管理:变更流程
  2. 6603网狐棋牌搭建视频教程
  3. 用JavaScript做一个日历和用canvas做一个时钟
  4. r语言和python的区别-r语言和python的详细对比
  5. QT之QTreeView使用总结
  6. 计算机视觉基础教程笔记索引
  7. Brackets - (HTML/CSS/JavaScript 前端 WEB IDE) 使用技巧
  8. tp5 admin.php,TP-admin即基于ThinkPHP5拿来即用高性能后台管理系统
  9. Android 系统网络框架
  10. python 共享内存 c_如何在python和C/C++中使用共享内存