Ajax fetch Axios 的区别

AJAX:一种创建交互式网页应用的网页执行交互技术

通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。意味着:在不重新加载整个网页 的情况下,对网页某部分进行更新。

缺点:

针对MVC编程,不符合前端MVVM;基于原生XHR;配置和调用方式非常混乱,基于事件的异步模型不友好;

Fetch:

ES6中的promise对象,不是ajax进一步封装,而是原生js,没有使用XMLHttpRequest对象。

fetch 语法简洁,更加语义化;基于标准Promise实现,支持async/await

缺点:

① fetch 只对网络请求报错,对400,500 都当做成功的请求,服务器返回400,500 错误码时不会reject,只有网络错误这些导致请求不能完成时,fetch才会被 reject。

② fetch 默 认 不 会 带 cookie , 需 要 添 加 配 置 项 : fetch(url, {credentials: 'include'})。
③ fetch 不 支 持 abort , 不 支 持 超 时 控 制 , 使 用 setTimeout 及 Promise.reject 的实现的超时控制并不能阻止请求过程继续在后台 运行,造成了流量的浪费。
④ fetch 没有办法原生监测请求的进度,而 XHR 可以。

(3)Axios 是一种基于Promise封装的HTTP客户端

浏览器发起XMLHttpRequest

node端发起http请求

支持promise API

监听请求和返回

对请求和返回进行转化

取消请求

自动转化json数据

客户端支持低于XSRF攻击

相关推荐
英俊潇洒美少年7 小时前
Vue 生产环境打包:SourceMap、压缩、混淆、加密全解 + 最佳实践
前端·javascript·vue.js
巴博尔7 小时前
UNIAPP中NVUE页面 动画
android·前端·javascript·ios·uni-app
猫头虎-前端技术8 小时前
JS 作用域与闭包:从变量提升到闭包陷阱的超详细解析
开发语言·javascript·云计算·bootstrap·ecmascript·openstack·perl
她说人狗殊途9 小时前
基于 vue-cli 创建
前端·javascript·vue.js
AZaLEan__10 小时前
前端移动端适配与 Bootstrap
前端·bootstrap·html
大家的林语冰10 小时前
Deno 2.8 正式发布,再次超越 Bun,史上最大的次版本升级诞生!
前端·javascript·node.js
渣渣xiong10 小时前
从零开始:前端转型AI agent直到就业第五十七天-第五十八天
前端·人工智能·python
影寂ldy10 小时前
C#数组的属性和方法(Clear / Copy / IndexOf )
开发语言·javascript·c#
Brave & Real11 小时前
小程序 const 在js中以及与同类的var和let之间的差异
javascript·微信小程序·小程序
AI周红伟11 小时前
周红伟:长鑫科技(CXMT)财务全景分析
前端·chrome·科技