范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

前端axios在项目实战中的封装

  简介
  Axios 是一个简单的基于 Promise 的 HTTP 请求库,用于浏览器客户端和 node.js。
  今天给大家讲一下,我们平时在项目中都是怎么使用它的安装npm install axios -S基本使用import axios from "axios"; axios.get("/users").then(res => {     console.log(res.data); });
  平时我们都是使用vue这样的支持单页面(spa)开发的框架来完成业务页面开发,但是不大可能在每个页面上都像上面那样去引入axios然后调用接口,一般来说我们都会对axios做一次封装,从而可以对请求前和请求后做一些处理,比如说日志监控、错误处理等封装
  我们可以在项目目录下建一个http.js文件,内容如下,我们以vue和elementui为例// 单独引入一次axios import axios from "axios"; // vuex,里面存放着登录后的token信息,每次请求前要放到header里 import store from "@/store"; // elementui的右上角提示信息组件及加载组件 import { Notification, Loading } from "element-ui"; import {   // 自定义超时时间,一般30秒   TIME_OUT_TIME,   // 和后台约定这个值为"1"时,代表业务数据返回正常,其它情况有报错   STATUS_CODE_OK,   // 右上角提示信息停留时长,一般3秒   NOTIFY_STAY_TIME,   //这个值为401常量,代表请求是没有授权的,需要授权或登录   CODE_UNAUTHORIZED,   // header里jwt的token信息,用于每次请求的授权校验   HEADER_TOKEN_NAME } from "@/config"; // 路由 import router from "@/router"; // loading加载遮罩,请求前加全屏遮罩,防止重复请求 let loadingInstace = null; // 创建axios实例 const fetch = axios.create({   // 请求的baseUrl   baseURL: process.env.VUE_APP_BACK_END_API_PX_URL,   // 是否可以查cookie   withCredentials: true,   // 请求超时时间   timeout: TIME_OUT_TIME, }); // request请求时拦截器 fetch.interceptors.request.use(   (config) => {     // 请求前加loading遮罩     loadingInstace = Loading.service({       lock: true,       text: "加载中",       spinner: "el-icon-loading",       background: "rgba(0, 0, 0, 0.7)",     });     if (store.getters.token) {       // 如果已经登录或授权,那么把token带在请求的header里       config.headers[HEADER_TOKEN_NAME] = store.getters.token;     }     return config;   },   (error) => {     // 请求时报错了,关掉loading遮罩,防止页面卡死     loadingInstace && loadingInstace.close();     // 并把错误信息提示在页面右上角,统一处理     Notification.error({       title: "错误",       message: error.message,       duration: NOTIFY_STAY_TIME,     });     return Promise.reject(error);   } ); // respone返回数据时拦截器 fetch.interceptors.response.use(   (res) => {     // statusCode为200以下的会走这里     // 关掉loading遮罩     loadingInstace && loadingInstace.close();     // 和后台约定的,如果返回的数据code不为"1"那么就是有业务错误     // 并把后台返回的业务错误信息提示在页面上     if (res.data.code && res.data.code !== STATUS_CODE_OK) {       Notification.error({         title: "错误",         message: res.data.msg,         duration: NOTIFY_STAY_TIME,       });     }     return res;   },   (err) => {     // 返回结果statusCode不为200,一般为200以上常见的比如,401,500这些的     // 关掉loading遮罩,防止页面卡死     loadingInstace && loadingInstace.close();     // 有返回数据时     if (err.response) {       // 如果是401的话,说明没有授权或者登录,直接去授权或登录页       if (err.response.status === CODE_UNAUTHORIZED) {         router.push("/login");       } else {         // 其他情况,把错误信息显示在页面上         Notification.error({           title: "错误",           message: err.message,           duration: NOTIFY_STAY_TIME,         });       }     } else if (err.request) {       // request时错误信息,同上面一样的处理逻辑       if (err.request.status === CODE_UNAUTHORIZED) {         router.push("/login");       } else {         Notification.error({           title: "错误",           message: err.message,           duration: NOTIFY_STAY_TIME,         });       }     } else {       // 其它错误信息提示       Notification.error({         title: "错误",         message: err.message,         duration: NOTIFY_STAY_TIME,       });     }     return Promise.reject(err);   } ); // 最终把封装的方法返回 export default fetch; 使用// 引入封装的http import http from "@/http"  // 获取个人用户的区域列表 http({     method: "post",     url: "/xxx/xxx",     // 请求参数     data: {       username:"xxx",       password:"xxx"     }  }).then(res=>{ 		console.log(res })
  觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧

华为和小米到底该怎么选择?专家从3个方面带你一眼看出差距华为手机和小米手机都是国内热度很高的两种手机品牌,都是国产手机的品牌,但是双方的初始道路却不一样,华为凭借自己的研发技术,打造出一款又一款的令人惊叹的机型,小米则是选择性价比以及MOppoFindN屏幕供应商曝光,使用的是三星显示器的可折叠OLED面板据12月14日报道,Oppo将于12月15发布的首款可折叠手机FindN使用的是三星显示器的可折叠OLED面板。消息人士称,这家韩国显示面板制造商已向这家中国智能手机制造商提供了7三星GalaxyS22Plus参数大全三星GalaxyS22Plus价格暂无价格上市时间2021年屏幕尺寸6。2英寸分辨率32001440屏幕技术康宁大猩猩玻璃VictusHDR技术HDR10输入方式虚拟按键触摸屏类型要么掉入万丈深渊,要么涅槃重生有人常拿任正非与和盛稻夫相比较。二人一个是中国民营企业做实业做通信科技并且代表中国制造(创造)的最高水平的人物,一个是日本最高企业(组织)管理的图腾象征。但有一点任总与和盛是一致的华为6月2日举行鸿蒙发布会,你最关心啥?会让败蹬们睡不着觉吗?等了两年,终于等到华为正式举行鸿蒙发布会,讲实话,非常期待!我觉得华为这次鸿蒙发布会是有备而来,肯定在功能特性上和用户体验上一定有精彩的地方,这两年系统我的华为手机时不时就会有个小华为奇葩面试题,你能答出来吗?上月网传华为公司有这样一个面试题,引起了很多网友的讨论兴趣。一头牛重800kg,一座桥承重700kg,牛怎样过河?针对这个问题,网友们天马行空,大开脑洞,为我们呈现出一场精彩智慧对堆料十足的岚图FREE,内屏可升降丹拿音响,定义豪华高端近两年新能源汽车发展十分迅猛,大多数的品牌的车企都开始往这个领域发展,作为老品牌自主车企的东风汽车也开始向这一领域进军,推出了全新高端电动车品牌岚图,其中这款岚图FREE就是首款车20多万买一款插电混合动力SUV,需要什么样的理由在同一车系燃油版和混动版之间,很多人会为了省个两三万块买燃油版车型,在我看来,这并不划算。发动机排量在2。0L以上,开个几年,后期油耗差距几乎可以补回来。特别是堵车的时候,更能体会屡教不改社区团购平台十荟团被顶格处罚150万来源联商网撰文拾一对于社区团购企业来说,用激进的价格补贴策略打压对手,抢占市场,已经玩不转了。5月27日,市场监管总局对社区团购平台十荟团不正当价格行为再次作出顶格罚款并责令停业整OPPOReno6系列来了,哪一款是你的菜?OPPOReno6系列正式发布,一共有三款机型,Reno6Reno6Pro和Reno6Pro,Reno6起售价2799元,比上一代仅仅多了100元,全系标配65W充电90Hz刷新率中石化入局换电,未来新能源汽车可去加油站换电国家发改委国家能源局发布了关于进一步提升充换电基础设施服务保障能力的实施意见(征求意见稿)。建议推行发展新能源充电配套,从公告看出,除了增加公共充电桩数量和布局外,推行换电模式与充
8年了,我们一直都是955呀!员工休息好,才有战斗力!在国内互联网科技行业,996工作制(早上9点到岗,晚上9点下班,每周工作6天)越来越成为了约定俗成的规则,无论是初创企业,还是行业大厂,都对员工有着潜在要求或硬性指标。这几日,在网996工作制已逾越法律底线最近,国内程序员界发生了一件大事,有人在知名代码托管平台上发起了一个名为996。ICU的项目,以此抵制互联网公司超时工作。此举得到大批程序员响应。所谓996,是指每天上午9点工作到计算机书籍每周销量排行榜!(2019。04。05)程序员书库每周日推出计算机书籍销量排行榜!数据来源于京东网当当网互动出版网中国图书网四大网站的计算机类书籍销量排行以下就是本周的图书销量排行情况京东销量排行京东计算机与互联网书籍每大数据扫盲!详解Hadoop核心架构通过对Hadoop分布式计算平台最核心的分布式文件系统HDFSMapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍。基本涵盖了Hadoop分布式平台的水滴互助完成腾讯领投5亿元B轮融资3月27日,旗下拥有水滴互助水滴筹水滴保等业务的水滴公司正式对外宣布完成B轮融资,总融资金额近5亿元人民币,本轮融资由腾讯领投,高榕资本IDG资本蓝驰创投创新工场DSTGlobal特斯拉正式量产搭载Hardware3的ModelS与ModelX特斯拉在发布重磅车型ModelY之前,大老板马斯克就表示今年年底前旗下车型就有能力实现完全自动驾驶的技术(按NHTSA对自动驾驶系统的定义划分,这算是Level4级别,具体划分方式每人398元,云集一年收15亿元会员费,洗脱传销嫌疑后增速下滑营收130亿元云集创始人肖尚略原本是淘宝香水卖家,2003年,淘宝还在起步期,肖尚略就开了小也店,业内也管肖尚略叫小也。到2012年,小也香水以12的市场份额,成为淘宝香水类目的行浅谈Web实时推送技术,有对比,有总结前言随着Web的发展,用户对于Web的实时推送要求也越来越高,比如,工业运行监控Web在线通讯即时报价系统在线游戏等,都需要将后台发生的变化主动地实时地传送到浏览器端,而不需要用户估值超200亿,据传被顺丰当做研究对象,跨越速运还能走多远?在物流与快递行业,近年有一家黑马企业总是受到行业关注,那就是跨越速运。跨越速运凭借其超高时效的服务与产品,日均吞吐货量超万吨。在胡润研究院公布的独角兽指数中,跨越速运的估值已经达到德国工业4。0和中国智能制造在上海临港强强联手,这个世界级科研机构终于来了今天下午,德国弗劳恩霍夫应用研究促进协会与上海交通大学签署正式合约,依托各自优势,双方将在临港地区成立上海交通大学弗劳恩霍夫协会智能制造项目中心,围绕智能制造和工业4。0前沿技术开印尼电商清关难于上青天,幕后却只有两家公司?墨腾创投注本文作者在印尼电商物流清关领域有深厚的经验,曾帮多家公司搭建印尼的物流基础设施和解决方案。如果有兴趣和作者合作,请与我们联系。每天,都有数万件电商小包乘着各大航班飞往印尼