axios客户端中ajax请求方式

这次给大家带来axios客户端ajax请求方式,axios客户端中使用ajax请求方式的注意事项有哪些,下面就是实战案例,一起来看一下。

前言

AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案。

异步的JavaScript:

使用 【JavaScript语言】 以及 相关【浏览器提供类库】 的功能向服务端发送请求,当服务端处理完请求之后,【自动执行某个JavaScript的回调函数】。

PS:以上请求和响应的整个过程是【偷偷】进行的,页面上无任何感知。

下面话不多说了,来一看看本文的正文。

本文http客户端为axios

先讲个故事

类似axios这种支持Promise的API已经很友好了,请求成功后我们可以从then的Response中拿到后端返回的数据。比如:

axios.get('/user/12345') .then((response) => { console.log(response); }) .catch((error) => { console.log(error); });

登录后复制

数据在response.data中,这意味着我们每个请求都需要多做一次处理才能拿到实际的数据。

然后,实际场景后端基本不会直接把数据给我们,他会做一层封装,比如response.data的结构会是这样:

{ "date": "2017-12-14 15:21:38", "success": true, "obj": { ... }, "version": "V1.0"}

登录后复制

所以,response.data.obj才是我们真正要的数据啊喂,所以我们每个请求都需要再多做一次处理=_=

突然有一天,后端说,“response.data不再是对象,改成了JSON字符串,你做一下处理~”。

然后是的,每个接口,是每一个,我们都需要改成JSON.parse(response.data).obj,半条命哦!

如果,后端再说,“我又改回对象了,你撤销之前的处理吧~”。。。

如果,后端又说,“不是所有的都是对象,有一些还是JSON字符串,具体你看下更新的接口文档~”。。。

如果,我们不曾相遇。。。

后来的我们

ES6 Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。

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; }); } }});

登录后复制

对应的接口请求部分改为:

apiService.get('/user/12345') .then((data) => { console.log(data); }) .catch((error) => { console.log(error); });

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

一个单独页面内如何实现两个zTree联动

nodejs怎样调用微信分享功能

以上就是axios客户端中ajax请求方式的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2772413.html

(0)
上一篇 2025年3月8日 13:16:31
下一篇 2025年3月8日 13:16:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS与ajax同源策略在项目中怎样使用

    这次给大家带来JS与ajax同源策略在项目中怎样使用,JS与ajax同源策略在项目中使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一、回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascri…

    编程技术 2025年3月8日
    200
  • axios使用步骤详解(附代码)

    这次给大家带来axios使用步骤详解(附代码),使用axios的注意事项有哪些,下面就是实战案例,一起来看一下。 Axios是一个基于Promise的 HTTP 库,可以用在浏览器和node.js 中,因为尤大大的推荐,axios也变得越来…

    编程技术 2025年3月8日
    200
  • 原生JS有哪些实现Ajax异步的方法

    这次给大家带来原生JS有哪些实现Ajax异步的方法,原生JS实现Ajax异步的注意事项有哪些,下面就是实战案例,一起来看一下。 在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面。 一般来说,使用Jquery…

    编程技术 2025年3月8日
    200
  • 实现ajax发送异步请求方法

    这次给大家带来实现ajax发送异步请求方法,实现ajax发送异步请求的注意事项有哪些,下面就是实战案例,一起来看一下。 ajax发送异步请求,供大家参考,具体内容如下 第一步(得到XMLHttpRequest) ajax其实只需要学习一个对…

    编程技术 2025年3月8日
    200
  • token怎么储存在客户端localStorage内

    这次给大家带来token怎么储存在客户端localStorage内,token储存在客户端localStorage内的注意事项有哪些,下面就是实战案例,一起来看一下。 我们后端有这样一个接口: http://localhost/yiiser…

    编程技术 2025年3月8日
    200
  • 原生ajax的get和post方法使用详解

    login.onclick = function(){var xhr = new XMLHttpRequest();xhr.open(“get”,”http://localhost/ajax2/test2.php?username=”+us…

    编程技术 2025年3月8日
    200
  • Ajax使用原理分析

    这次给大家带来Ajax使用原理分析,Ajax使用的注意事项有哪些,下面就是实战案例,一起来看一下。 其实AJAX内部实现并不麻烦,主要通过一个叫XMLHttpRequest的对象,而这个对象在现有的浏览器均被支持。 可以说,它是整个AJAX…

    编程技术 2025年3月8日
    200
  • vue axios请求超时处理详解(附代码)

    这次给大家带来vue axios请求超时处理详解(附代码),vue axios请求超时处理详解的注意事项有哪些,下面就是实战案例,一起来看一下。 自从使用Vue2之后,就使用官方推荐的axios的插件来调用API,在使用过程中,如果服务器或…

    2025年3月8日 编程技术
    200
  • axios拦截器

    这次给大家带来axios拦截器,使用axios拦截器的注意事项有哪些,下面就是实战案例,一起来看一下。 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端.这篇文章主要介绍了vue/axios请求拦截的相…

    编程技术 2025年3月8日
    200
  • DWR如何实现Ajax

    这篇文章介绍的内容是关于DWR如何实现Ajax,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 一、 ajax的介绍。 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript…

    2025年3月8日
    200

发表回复

登录后才能评论