一、新建一个axios文件夹
新建一个fetch.js文件:

关注我的微信公众号【前端基础教程从0开始】,加我微信,可以免费为您解答问题。回复“1”,拉你进程序员技术讨论群。回复“小程序”,领取300个优秀的小程序开源代码+一套入门教程。回复“领取资源”,领取300G前端,Java,微信小程序,Python等资源,让我们一起学前端。
import axios from ‘axios’;

const TENANT_ID='0'
const ENCRYPT_KEY='shrewshrewshrews'export function fetch(url,method,params={}){//判断obj中的投放范围、类型、状态是否为空let newObjs={}let strs=''for(var item in params){if(params[item]!=''){strs= "newObjs."+item+"='"+params[item]+"'";eval(strs);}}this.body = Object.assign({randomStr: new Date().getTime().toString(),reqDate: formatData('yyyyMMdd'),reqTime: formatData('yyyyMMddhhmmss'),tenantId: TENANT_ID,}, newObjs);let sing=signatureTempGenerate(this.body)let sha256 = require("js-sha256").sha256console.log(sing)console.log(sha256(sing))//这就是你加密之后的密码this.body.signature = sha256(sing);this.params=this.bodyconsole.log(this.params)let data = method.toLocaleLowerCase() === 'get' ? 'params' : 'data';return new Promise((resolve,reject) => {axios({method,url,[data]: params, // 差异点在于data的值headers:{'TENANT_ID':'0',//'Authorization':'bearer '+this.access_token},}).then(response => {resolve(response.data);}).catch(err => {reject(err)})})
}
//签名
function signatureTempGenerate(data) {let keys = Object.keys(data).sort();let stringSignTemp = '';keys.forEach((key) => {if (!data[key] || key === 'password') return null;stringSignTemp = stringSignTemp? `${stringSignTemp}&${key}=${data[key]}`: `${key}=${data[key]}`;});stringSignTemp = stringSignTemp? `${stringSignTemp}&key=${ENCRYPT_KEY}`: `key=${ENCRYPT_KEY}`;return stringSignTemp;
}
function formatData (fmt = 'yyyy-MM-dd hh:mm:ss', date = new Date()) {let o = {"M+" : date.getMonth()+1,"d+" : date.getDate(),"h+" : date.getHours(),"m+" : date.getMinutes(),"s+" : date.getSeconds(),"q+" : Math.floor((date.getMonth()+3)/3),"S"  : date.getMilliseconds()};if(/(y+)/.test(fmt)) {fmt = fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));}for(let k in o) {if(new RegExp("("+ k +")").test(fmt)){fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));}}return fmt;
}

二、在main.js中挂载

import {fetch} from '../../axios/fetch'
//定义全局变量
Vue.prototype.$fetch=fetch;

三、在组件中使用

mounted(){this.$fetch(this.Ce_Host,'get',{format:'json',calback:'',from:'webapp_music',method:'baidu.ting.billboard.billList',type:1,size:10,offset:2}).then((res) => {console.log(res)}).catch(err => {console.log(err)})
},

axios封装简单有效相关推荐

  1. axios的简单封装

    前言 在每次使用原装的axios发送 http请求时,如果需要token验证,则都需要创建拦截器,添加'token'请求头,或者在config中具体的请求体中添加,是一个非常麻烦的事情. 遇到401, ...

  2. vue中axios封装请求

    执行 GET 请求 // 向具有指定ID的用户发出请求 axios.get('/user?ID=12345') .then(function (res) {console.log(res); }) . ...

  3. 前端学习笔记(16)-Axios封装

    1.Axios介绍 1.1 概述 Vue前端开发少不了向服务器请求数据,我们选择axios插件,他是一款功能强大,且易用的网络请求工具. 1.2 全称 ajax i/o system 1.3 功能介绍 ...

  4. axios封装,api接口封装统一管理

    axios封装,api接口封装统一管理 一. axios说明 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. axios的封装和api接口的统一管理, ...

  5. vite + vue3 + 封装axios + 封装loading + 封装返回顶部

    前言 ​前期回顾    ​ vite + vue3 + ts配置<企业级项目>二次封装el-table.分页_0.活在风浪里的博客-CSDN博客封装的功能有哪些?分页.表格排序.文字居中. ...

  6. axios post body参数_Vue开发中的一些问题(axios封装)

    关于Vue开发的问题(axios封装) 在博客中查找vue的axios封装,发现其中案例还是很多的,自己项目中有些需求不够. 比如 1.Content-Type 请求头 application/x-w ...

  7. axios设置text html,axios封装动态设置Content-Type

    问题如下: 有个问题 是这样的 后台给的API接口 请求类型有两种 'Content-Type': 'application/json' 'Content-Type': 'application/x- ...

  8. vue中将axios封装

    在平时写项目中,经常会遇到组件调用同一个接口或者不同接口 import axios from "axios"axios({url: "https://autumnfish ...

  9. vue axios封装 获取微信公众号用户的openid

    目录 axios封装 openid vue vue+ts axios封装 一般会在项目的src目录中,新建一个文件夹,作为网络请求模块,用来封装axios, 创建axios实例: axios.crea ...

  10. ajax和axios封装

     Ajax 1.ajax理解 ajax是async JavaScript and xml /异步的js和xml 主要用来实现页面的局部刷新 在浏览器里内置了ajxa的核心对象的:XMLHttpRequ ...

最新文章

  1. mysql+永久+关闭提交,MySQL学习【第十一篇存储引擎之事务解释】
  2. linux通过命令行本地目录取消svn关联
  3. Java黑皮书课后题第7章:*7.1(指定等级)编写一个程序读入学生成绩,得到最高分best,然后根据下面的规则给出等级值。程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级给出结论
  4. [二叉树]二叉树中和为某一值的路径 (剑指offer24)
  5. 【C++ grammar】对象和类(创建对象、对象拷贝、分离声明与实现)
  6. Hadoop基础-Hdfs各个组件的运行原理介绍
  7. Django 新建account应用
  8. 这位教授2 年一篇 Science,再获教科书级的重大发现
  9. 递推(hdu2563)
  10. RTT的内存管理篇——为什么要进行内存管理?
  11. 微软11月补丁星期二值得关注的6个0day及其它
  12. 老程序员被裁,应届生却能月薪 1.3 万?这你能忍?
  13. 分享一个强大的工具,可以快速查看自己公司网站或竞争对手网站的CDN情况
  14. itext 生成 PDF
  15. linux设备驱动之 i2c设备驱动 at24c08驱动程序分析【全部地址的操作】
  16. 病毒感染检测(数据结构串,c语言版)
  17. 我写了一个语音识别引擎
  18. php中不等于号怎么表示,excel公式不等于号怎么输入!Excel 请问“不等于”怎么表示...
  19. 第七章 线程的活性故障--《java多线程编程实战指南-核心篇》
  20. 以低字节为字地址是什么意思?

热门文章

  1. 黑马程序员————银行业务调度系统
  2. ug许可证服务器注册表删除,ug许可证卸载工具
  3. 如何开发一款棋牌游戏?棋牌游戏平台搭建
  4. MySQL安全你不知道的事
  5. 深度学习目标检测之SSD网络(超级详细)
  6. git提交代码时遇到代码库有更新以及本地有更新的解决方法
  7. 微信小程序开发教程!
  8. 51单片机驱动数码管显示
  9. 机器学习-UCI数据库
  10. 如何从UCI获取数据集?