前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >网络请求AJAX

网络请求AJAX

作者头像
郭顺发
发布于 2023-07-17 09:52:17
发布于 2023-07-17 09:52:17
14800
代码可运行
举报
文章被收录于专栏:pandacode_cnpandacode_cn
运行总次数:0
代码可运行

1. AJAX 介绍

​Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTMLXHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。 [3] 使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。

2. AJAX 的实现方式介绍网络

目前前端进行网络请求有两种方式,XHR和fatch。

对XHR进行封装的组件有很多,常见的有axios,jquery。

备注:XHR(XMLHttpRequest)

(建议使用axios。)

2.1. 优缺点

XHR

缺点:

  1. API用法繁琐。
  2. 没有关注分离的设计思想。
fetch

优点:

  1. 关注分离的设计思想。
  2. API相对于XHR更简单。
  3. fetch是浏览器原生支持的,使用fetch可以不用引用http的类库即可实现。

缺点:

  1. 老版浏览器兼容问题。(IE系列是完全不支持的,主流浏览器的早起版本也不支持,所以如果在项目中使用需要做兼容方案处理。)

3. 原生JS 实现 AJAX

直接使用XHR(XMLHttpRequest)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var xhr = new XMLHttpRequest();
xhr.open("get",url, true);
xhr.send(null);
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4){
        if(xhr.status == 200){
            alert(xhr.responseText);
        }
    }
}

4. axios 实现 AJAX

前往 github (详情请查看axios Github 项目README.md 文件。)

4.1. 安装

Using npm:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ npm install axios

Using bower:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ bower install axios

Using yarn:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yarn add axios

Using jsDelivr CDN:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

Using unpkg CDN:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

4.2. API demo

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Send a POST request
axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// GET request for remote image in node.js
axios({
  method: 'get',
  url: 'http://bit.ly/2mTM3nY',
  responseType: 'stream'
})
  .then(function (response) {
    response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
  });

5. JQuery 实现 AJAX

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$.ajax({
  url: 'url',
  type: 'get',
  success: function(){
  }
})

6. Fetch 实现 AJAX

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {
  const response= await fetch(url)
  const data = await response.json()
} catch (error) {
  console.log('请求出错',error);
}

Fetch 更多参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fetch(url, {
  body: JSON.stringify(data), // must match 'Content-Type' header
  cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
  credentials: 'same-origin', // include, same-origin, *omit
  headers: {
    'user-agent': 'Mozilla/4.0 MDN Example',
    'content-type': 'application/json'
  },
  method: 'POST', // *GET, POST, PUT, DELETE, etc.
  mode: 'cors', // no-cors, cors, *same-origin
  redirect: 'follow', // manual, *follow, error
  referrer: 'no-referrer', // *client, no-referrer
})

参考文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JS 中的网络请求 AJAX, Fetch, WebSocket
AJAX 是 Asynchronous JavaScript And XML 的简称,它可以让页面在不刷新的情况下从服务器获取数据。
羽月
2022/10/08
4.2K0
【JavaWeb】学习笔记——Ajax、Axios
AJAX(Asynchronous JavaScript And XML):异步的JavaScript 和 XML
鸡先生
2022/10/29
8560
【JavaWeb】学习笔记——Ajax、Axios
Js中fetch方法
fetch()方法定义在Window对象以及WorkerGlobalScope对象上,用于发起获取资源的请求,其返回一个Promise对象,这个Promise对象会在请求响应后被resolve,并传回Response对象。
WindRunnerMax
2020/08/27
5.4K0
在 JS 中如何使用 Ajax 来进行请求
github 地址:https://github.com/qq44924588...
前端小智@大迁世界
2020/12/07
9.1K0
HTTP实用指南 - 笔记
HTTP( Hyper Text Transfer Protocol ) 模型如下图所示,是一个应用层(见上图)的协议,基于 TCP 协议,它有如下特点:
TagBug
2023/03/17
8490
HTTP实用指南 - 笔记
学习fetch,从这里开始!
fetch() 是 浏览器内置的 全局 JavaScript 方法,用于发出 http 请求,无需下载安装,可以直接使用。
Learn-anything.cn
2021/11/24
1K0
全面分析前端的网络请求方式
这种交互的的缺陷是显而易见的,任何和服务器的交互都需要刷新页面,用户体验非常差, Ajax的出现解决了这个问题。 Ajax全称 AsynchronousJavaScript+XML(异步 JavaScript和 XML)
ConardLi
2019/05/23
1.8K0
项目实战|基础请求封装
设计模式已经连载到了第 3 期,由于下一期的观察者模式要配合团队的埋点性能博客一起上要暂缓一段时间,所以这一篇算彩蛋篇,推出一个开箱即用型的 fetch 项目实战。
Cookieboty
2020/10/14
4980
49. Vue使用axios发送Ajax请求
在Vue.js的框架中,如果要发送ajax请求是需要借助外部库的。在vue1.0版本官方推荐的vue-resource、vue2.0版本官方推荐的axios,或者也可以使用jquery来发送ajax请求。
Devops海洋的渔夫
2020/07/23
1.8K0
跟我一起探索 HTTP-Fetch API
Fetch API 提供了一个获取资源的接口(包括跨网络通信)。对于任何使用过 XMLHttpRequest 的人都能轻松上手,而且新的 API 提供了更强大和灵活的功能集。
用户1418987
2023/10/16
2700
跟我一起探索 HTTP-Fetch API
JavaScript中的Fetch
Fetch 是一个现代的概念, 等同于 XMLHttpRequest。它提供了许多与XMLHttpRequest相同的功能,但被设计成更具可扩展性和高效性。
刘亦枫
2020/03/19
1.9K0
JavaScript Fetch API 新手入门指南
文章来源:https://www.oxxostudio.tw/articles/201908/js-fetch.html
前端达人
2019/09/10
1.2K0
JavaScript Fetch API 新手入门指南
Ajax 入门:打开前端异步交互的大门
欢迎来到前端异步交互的世界!在这篇博客中,我们将深入探讨 Ajax(Asynchronous JavaScript and XML),这是一项能够让你的网页在不刷新的情况下与服务器进行数据交互的技术。无论你是刚刚踏入前端开发的小白,还是有一定经验的开发者,相信通过本文的学习,你将对 Ajax 有更深入的理解。
繁依Fanyi
2023/11/19
3660
【Java 进阶篇】Ajax 入门:打开前端异步交互的大门
欢迎来到前端异步交互的世界!在这篇博客中,我们将深入探讨 Ajax(Asynchronous JavaScript and XML),这是一项能够让你的网页在不刷新的情况下与服务器进行数据交互的技术。无论你是刚刚踏入前端开发的小白,还是有一定经验的开发者,相信通过本文的学习,你将对 Ajax 有更深入的理解。
繁依Fanyi
2023/11/20
8580
【Java 进阶篇】Ajax 入门:打开前端异步交互的大门
Vue通过axios发送ajax请求
在Vue中是不支持发送ajax请求的,如果我们要在Vue中发送ajax请求,我们需借助第三方插件 常用发送ajax请求插件有两个 vue-resource和axios,Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
切图仔
2022/09/08
9020
Vue通过axios发送ajax请求
Vue通过axios发送ajax请求
在Vue中是不支持发送ajax请求的,如果我们要在Vue中发送ajax请求,我们需借助第三方插件 常用发送ajax请求插件有两个 vue-resource和axios,Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
切图仔
2022/09/08
9750
Vue通过axios发送ajax请求
Vue3 Ajax(axios)(上)
Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。
陈不成i
2021/07/28
2K0
Ajax 之战:XMLHttpRequest 与 Fetch API
Ajax 是大多数 web 应用程序背后的核心技术,它允许页面向 web 服务发出异步请求,因此数据可以不经过页面往返服务器无刷新显示数据。
深度学习与Python
2022/06/13
2.4K0
Ajax 之战:XMLHttpRequest 与 Fetch API
Ajax笔记(2) -Axios
xhr.onreadystatechange = function() { 当事件发生时执行的代码 }
y191024
2022/09/20
1.4K0
Ajax笔记(2) -Axios
Vue.js Ajax(axios)
Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。
陈不成i
2021/07/27
3K0
相关推荐
JS 中的网络请求 AJAX, Fetch, WebSocket
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文