1.jQuery ajax

$.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () {}, error: function () {}});

传统 Ajax 指的是 XMLHttpRequest(XHR), 最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱

JQuery ajax 是对原生XHR的封装,除此以外还增添了对JSONP的支持。经过多年的更新维护,真的已经是非常的方便了,优点无需多言;如果是硬要举出几个缺点,那可能只有:

1.本身是针对MVC的编程,不符合现在前端MVVM的浪潮

2.基于原生的XHR开发,XHR本身的架构不清晰。

3.JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常的不合理(采取个性化打包的方案又不能享受CDN服务)

4.不符合关注分离(Separation of Concerns)的原则

5.配置和调用方式非常混乱,而且基于事件的异步模型不友好。

PS:MVVM(Model-View-ViewModel), 源自于经典的 Model–View–Controller(MVC)模式。MVVM 的出现促进了 GUI 前端开发与后端业务逻辑的分离,极大地提高了前端开发效率。MVVM 的核心是 ViewModel 层,它就像是一个中转站(value converter),负责转换 Model 中的数据对象来让数据变得更容易管理和使用,该层向上与视图层进行双向数据绑定,向下与 Model 层通过接口请求进行数据交互,起呈上启下作用。View 层展现的不是 Model 层的数据,而是 ViewModel 的数据,由 ViewModel 负责与 Model 层交互,这就完全解耦了 View 层和 Model 层,这个解耦是至关重要的,它是前后端分离方案实施的最重要一环。

如下图所示:

2.axios

axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }}).then(function (response) { console.log(response);}).catch(function (error) { console.log(error);});

Vue2.0之后,尤雨溪推荐大家用axios替换JQuery ajax,想必让axios进入了很多人的目光中。

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范,它本身具有以下特征:

1.从浏览器中创建 XMLHttpRequest

2.支持 Promise API

3.客户端支持防止CSRF

4.提供了一些并发请求的接口(重要,方便了很多的操作)

5.从 node.js 创建 http 请求

6.拦截请求和响应

7.转换请求和响应数据

8.取消请求

9.自动转换JSON数据

PS:防止CSRF:就是让你的每个请求都带一个从cookie中拿到的key, 根据浏览器同源策略,假冒的网站是拿不到你cookie中得key的,这样,后台就可以轻松辨别出这个请求是否是用户在假冒网站上的误导输入,从而采取正确的策略。

3.fetch

try { let response = await fetch(url); let data = response.json(); console.log(data);} catch(e) { console.log("Oops, error

ajax json node 布尔值_ajax和axios、fetch的区别相关推荐

  1. ajax使用json数组,使用JSON传递数组值的Ajax

    我有一个复选框和提交按钮表格的html表单. 当按钮被点击时,我打电话和ajax_function在那里我想传递 的数据到另一个php页面.我不知道如果我做了什么,到目前为止是正确的,所以我可以pro ...

  2. JSON 语法之JSON 布尔值

    JSON 布尔值可以是 true 或者 false.如: { "flag":true } 关于作者 歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML.CSS.Jav ...

  3. ajax jq 图片上传请求头_全面分析前端的网络请求方式:Ajax ,jQuery ,axios,fetch

    链接:https://juejin.im/post/5c9ac607f265da6103588b31 一.前端进行网络请求的关注点 大多数情况下,在前端发起一个网络请求我们只需关注下面几点: 传入基本 ...

  4. Jquery ajax, Axios, Fetch区别之我见 Axios中文说明

    引言 此小段转自 https://segmentfault.com/a/1190000012836882 前端技术真是一个发展飞快的领域,我三年前入职的时候只有原生XHR和Jquery ajax,我们 ...

  5. ajax请求node.js_Node.js测试:模拟HTTP请求

    ajax请求node.js Writing tests for an application that relies on external services, say, a RESTful API, ...

  6. 【AJAX 笔记】AJAX 基本、HTTP 基本、原生 AJAX 的使用,jQuery / Axios / fetch 发送请求、跨域(JSONP/CORS)

    文章目录 1 Ajax 概述 1.1 AJAX 简介 1.2 XML 简介 1.3 AJAX 的特点 1.3.1 AJAX 的优点 1.3.2 AJAX 的缺点 1.4 AJAX 属性和方法 2. H ...

  7. js高级程序设计--AJAX JSON

    var xhr = createXHR(); //启动请求 /** * 参数1:要发送的请求类型 * 参数2:请求的url * 参数3:是否异步发送请求的布尔值 */ xhr.open("g ...

  8. addeventlistener不支持ajax_十万个Web前端面试题之AJAX、axios、fetch的区别

    来自灵魂的拷问 你知道AJAX.axios.fetch的区别吗? 小白回答 AJAX用来请求数据的吧,另外axios和fetch是啥? 老鸟回答 AJAX Gmail开发人员发现IE里面有个XMLHT ...

  9. java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题

    1:springMVC工作原理 springMVC架构.png [用户发送请求到前端控制器dispatcherservlet,前端控制器接收到请求之后调用处理器映射器,根据请求url找到具体的处理器, ...

最新文章

  1. ceph存储引擎bluestore解析
  2. GLSL学习笔记 - 6.2 Vertex Shader
  3. 外媒:英贸易大臣将与其他国家商脱欧后贸易协议
  4. django 1.8 官方文档翻译:2-5-9 条件表达式
  5. python解析log文件_python解析基于xml格式的日志文件
  6. NSWindowController的初始化创建代码
  7. 汽车电子专业知识篇(六)-DDS如何满足自动驾驶汽车中的应用?
  8. r语言将百分数化为小数_「淮南师出」教师资格/招聘小学数学:《百分数与小数的互化》...
  9. 解锁秋天\秋季借势的海波设计密码!
  10. list 相加_Python 基础 list类、运算符
  11. ESP8266-Arduino编程实例-L3G4200D三轴陀螺仪驱动
  12. bugkuCTF 网站被黑
  13. PTK(Pulmonarytoolkit)环境搭建与 ITK4.13+VS2015的配置
  14. POI解析Excel表格
  15. 鼠标经过文字显示隐藏图片css样式
  16. 记一次对钓鱼邮件的分析
  17. GEE (Google Earth Engine)高阶学习一 影像分割
  18. 直接跳转到支付宝进行付款和转账链接
  19. 使用U盘安装 mac os
  20. BufferedReader读文件

热门文章

  1. php与mysql关系大揭秘_【慕课笔记】PHP与MySQL关系大揭秘
  2. Java Swing Mysql实现的电影票订票管理系统源码附带视频指导运行教程
  3. 标自然段的序号格式_你可能还不会基本的公文格式
  4. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
  5. Python_包和模块的简单应用
  6. 【读书笔记】【独立思考】2018-03-14
  7. 通过hadoop + hive搭建离线式的分析系统之快速搭建一览
  8. 饿了么element UIel-dialog弹出层/el-dialog修改默认样式不能在style scoped修改
  9. Excel表格生成sql语句
  10. c#学习之Socket网络编程