项目中常用的接口请求方式有ajax、axios、fetch,它们的区别是什么?

目前项目中常用的请求接口的方法就是ajax和axios。两个相对应的框架是jq和VUE。另外还有一种不常用的fetch方式。下面就简单的说一下三者。

ajax从开始一直沿用到现在,它本身已经非常完善了,使用还是非常方便的,硬要说缺点的话,可能也就是:

  1. 它是针对MVC框架编程,不符合现在MVVM框架的潮流;
  2. 想使用ajax就得引入jq,但是jq本身比较大,如果有其他选择就不要选择引入jq,感觉有点得不偿失。

axios是一个基于promise的http库,个人认为它是在ajax的基础上做了一些抽离,同时适用于浏览器端和Node.js端。axios在浏览器端和ajax一样创建的是XHR(XMLHttpRequest),在node.js端创建http请求,而且本身是轻量级的,感觉是目前各类的首选吧,

fetch是ES6时出现的,使用了ES6的promise对象,在此基础上进行设计的。fetch的代码结构比ajax要简单,不过整体参数差不多。fetch本身问题感觉算是比较大,想使用fetch的话需要对它进行封装。最起码的差距在于:

  1. fetch只对网络请求报错,400,500之类的都会被当做成功的请求;
  2. fetch默认不会携带cookie,需要另外添加配置项;

以上对比不难看出,axios是一个集诸多优点于一身的请求方法。

说道接口调用方法,在调用中容易产生的就是跨域问题。
跨域:主要是因为浏览器的同源策略引起的。
同源策略:简单的说是指【域名,协议,端口】相同。
那么相对的处理跨域的方法简单说一下我VUE项目中的处理方法吧。
本地调试的时候可以使用配置api的方式来解决跨域;到了测试环境或者线上环境的时候使用nginx做一个反向代理就可以了。

本地调试的配置方法如下:
在config文件中找到dev配置下的proxyTable项,配置一个“api”的参数项就可以了。看下面的图可能更好理解。
在这里插入图片描述
【配置的api对象里面,target是要调用接口的ip】数据页面使用的方法是在接口地址剩余的部分前添加 “/api” 就可以了,具体方法如下:
在这里插入图片描述

一些底层的东西目前还没有回顾到,等回顾到的时候会在这篇文章中做更加详细的解释。

以上纯属个人理解,如果有问题或者哪里不对的话,还请留言批注,我会积极修改和处理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值