关于前端ajax请求的优雅方案(http客户端为axios)
关于前端Ajax请求的优雅方案(http客户端为axios) 概述: 本文主要介绍了关于前端Ajax请求的优雅方案,使用http客户端为axios,以示例代码形式详细介绍了请求的优雅方案,对大家的学习或者工作具有一定的参考学习价值。 一、AJAX概述 AJAX(Asynchronous JavaScript and XML),是一种创建交互式网页应用的网页开发技术方案。异步的JavaScript:使用JavaScript语言以及相关浏览器提供的类库的功能向服务端发送请求,当服务端处理完请求之后,自动执行某个JavaScript的回调函数。 二、axios介绍 axios是一种支持Promise的API,请求成功后可以从then的Response中拿到后端返回的数据。例如:axios.get('/user/12345') .then((response) => { console.log(response); }) .catch((error) => { console.log(error); });数据在response.data中,但是实际场景后端基本不会直接把数据给我们,他会做一层封装。 三、数据处理问题 后端可能会改变数据的返回格式,从对象改为JSON字符串等,需要我们每个请求都需要多做一次处理才能拿到实际的数据。这会给开发者带来很大的麻烦。 四、使用Proxy解决问题 ES6 Proxy可以用于修改某些操作的默认行为,相当于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。Proxy可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 五、统一封装接口请求 使用Proxy可以对所有的接口请求做统一的封装,如此一来就算后端改来改去,我们只需修改一个地方甚至不用修改!例如:const apiService = new Proxy(axios, { get (target, propKey, receiver) { return function (...args) { return target[propKey](...args) .then((res) => { const resData = typeof res.data === 'string' ? JSON.parse(res.data) : res.data; return typeof resData.obj === 'string' ? JSON.parse(resData.obj) : resData.obj; }) .catch((err) => { throw err; }); } }}); 六、结论 本文主要介绍了关于前端Ajax请求的优雅方案,使用http客户端为axios,并使用Proxy对所有的接口请求做统一的封装,解决了数据处理问题,希望对大家的学习或者工作具有一定的参考学习价值。























- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 暑假电子商务实践报告.docx
- 如何做好项目管理-精选.ppt
- (源码)基于Spring Boot和Spring Cloud的分布式谷粒商城系统.zip
- 算法的概念优质课.pptx
- 中传传媒经济学硕士影视项目管理方向就业状况好不好.doc
- 专题讲座资料(2021-2022年)单片机红外线防盗报警系统课程设计.doc
- 合作开发贷款管理软件协议书.docx
- 项目管理项目变更控制表样本.doc
- Comsol锂离子电池仿真:方形电池充放电循环热仿真与流热耦合多物理场分析
- 鲁班软件安装消防培训.ppt
- 卫星图像处理流程.docx
- 某工程精装修项目管理成品保护控制标准.docx
- 霍尼韦尔智能家居系统的几大优势.pdf
- 深度学习-卷积神经网络算法简介.pdf
- 计算机大学生个人实习报告三篇范文.docx
- Android项目开发实训项目总结报告新.doc


