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

网络请求AJAX

作者头像
郭顺发 软件开发
发布2023-07-17 17:52:17
1220
发布2023-07-17 17:52:17
举报
文章被收录于专栏:pandacode_cn

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
复制
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
复制
$ npm install axios

Using bower:

代码语言:javascript
复制
$ bower install axios

Using yarn:

代码语言:javascript
复制
$ yarn add axios

Using jsDelivr CDN:

代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

Using unpkg CDN:

代码语言:javascript
复制
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

4.2. API demo

代码语言:javascript
复制
// Send a POST request
axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});
代码语言:javascript
复制
// 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
复制
$.ajax({
  url: 'url',
  type: 'get',
  success: function(){
  }
})

6. Fetch 实现 AJAX

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

Fetch 更多参数:

代码语言:javascript
复制
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. AJAX 介绍
  • 2. AJAX 的实现方式介绍网络
    • 2.1. 优缺点
    • 3. 原生JS 实现 AJAX
    • 4. axios 实现 AJAX
      • 4.1. 安装
        • 4.2. API demo
        • 5. JQuery 实现 AJAX
        • 6. Fetch 实现 AJAX
        • 参考文档
        相关产品与服务
        内容分发网络 CDN
        内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档