AJAX基础知识

embedded/2024/9/24 11:21:43/

AJAX(Asynchronous JavaScript and XML)是一种技术,用于在网页加载时从服务器异步获取数据,而无需重新加载整个页面。它允许在后台与服务器进行通信,提升网页的交互性和用户体验。AJAX 通常结合 JavaScript 和 XML(或 JSON)使用,但数据格式不限于 XML。

1. XMLHttpRequest 对象

  • 创建对象:

    var xhr = new XMLHttpRequest();

  • 设置请求:

    xhr.open('GET', 'https://api.example.com/data', true);
    
    • GET 是 HTTP 请求方法,https://api.example.com/data 是请求的 URL,true 表示请求是异步的。
  • 处理响应:

    xhr.onload = function () {if (xhr.status >= 200 && xhr.status < 300) {console.log(xhr.responseText);} else {console.error('Request failed with status: ' + xhr.status);}
    };
    
    • xhr.responseText 包含服务器响应的数据。
    • xhr.status 是 HTTP 状态码,200 表示成功。
  • 发送请求:

    xhr.send();
    • 对于 POST 请求,可能需要设置请求头和发送数据:

      xhr.open('POST', 'https://api.example.com/submit', true);
      xhr.setRequestHeader('Content-Type', 'application/json');
      xhr.send(JSON.stringify({ key: 'value' }));
      

2. Fetch API

  • 发送请求:

    fetch('https://api.example.com/data').then(response => response.json())  // 解析 JSON 数据.then(data => console.log(data))    // 处理数据.catch(error => console.error('Error:', error));  // 错误处理
    

  • POST 请求:

    fetch('https://api.example.com/submit', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({ key: 'value' })
    })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
    

3. 异步操作

  • AJAX 允许页面在后台完成数据请求和处理,而无需刷新整个页面。
  • XMLHttpRequest 和 fetch 默认都是异步的,即在请求发出后,JavaScript 代码继续执行,不会等待服务器响应。

4. 回调函数

  • XMLHttpRequest: 使用 onloadonerror 等事件处理响应。

    xhr.onload = function () {if (xhr.status === 200) {// 成功处理}
    };
    xhr.onerror = function () {// 错误处理
    };
    

  • Fetch: 使用 thencatch 处理响应和错误。

5. 数据格式

  • JSON: 最常用的数据格式。解析和生成 JSON 使用 JSON.parseJSON.stringify

    var jsonData = JSON.parse(xhr.responseText);  // 解析
    var jsonString = JSON.stringify({ key: 'value' });  // 转换为 JSON 字符串
    

  • XML: 较少使用,但可以通过 responseXML 访问。

    var xmlDoc = xhr.responseXML;
    var elements = xmlDoc.getElementsByTagName('tagName');
    

6. 错误处理

  • XMLHttpRequest: 使用 onerror 事件处理网络错误。

    xhr.onerror = function () {console.error('Network Error');
    };
    

  • Fetch: 使用 catch 方法处理错误。

    fetch('https://api.example.com/data').then(response => {if (!response.ok) {throw new Error('Network response was not ok');}return response.json();}).then(data => console.log(data)).catch(error => console.error('Error:', error));

这涵盖了 AJAX 的核心概念和操作。


http://www.ppmy.cn/embedded/94105.html

相关文章

MBTI 性格测试小程序实战

MBTI 性格测试应用介绍 参考项目&#xff1a;16Personalities&#xff08;https://www.16personalities.com/ch&#xff09; MBTI 实现方案介绍 核心组成&#xff1a; 题目用户答案评分规则 题目结构 暂时使用JSON&#xff0c;便于理解&#xff0c;result代表题目对应的…

http跨域网络请求中的CORS(跨源资源共享) 那些事 -- HTTP跨域请求, chrome插件跨域请求使用详解, origin格式,origin通配符等

在我们进行网络应用开发的时候&#xff0c;如果用到了跨域网络请求&#xff0c;则不可避免的就会遇到http跨域网络请求 CORS的问题&#xff0c;今天就和大家来聊聊跨域网络请求中的CORS的那些事。 跨源资源共享&#xff08;CORS&#xff09; CORS 是一种基于 HTTP 头的机制&a…

【Linux】解锁进程地址空间奥秘,高效环境变量的实战技巧

环境变量和进程地址空间 1. 环境变量1.1. 概念1.2. 常见环境变量1.3. 和环境变量相关的命令 2. 命令行参数2.1. int argc、char* argv[]2.2. char* env[] 3. 环境变量的特性4. 环境变量的获取4.1. 代码方式4.2. 系统调用方式 5. 环境变量的配置文件6. 程序地址空间7. 进程地址空…

【AI在金融领域的应用】AI在金融风险管理、量化交易等领域的应用

AI在金融领域的应用 AI在金融风险管理、量化交易等领域的应用 引言 随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;金融行业已经成为AI应用的重要领域之一。AI在金融中的应用不仅极大地提高了运营效率&#xff0c;还在风险管理、量化交易、客户服务等方面…

HTTP、HTTPS、SOCKS5三种协议特点

在互联网通信中&#xff0c;HTTP、HTTPS和SOCKS5是三种至关重要的协议&#xff0c;它们各自具有独特的特点和应用场景。本文将详细探讨这三种协议的特点&#xff0c;帮助读者更好地理解它们在网络通信中的作用。 一、HTTP协议特点 HTTP&#xff08;Hypertext Transfer Protoc…

理解 Objective-C 中 +load 方法的执行顺序

在 Objective-C 中&#xff0c;load 方法是在类或分类&#xff08;category&#xff09;被加载到内存时调用的。它的执行顺序非常严格&#xff0c;并且在应用启动过程中可能会导致一些令人困惑的行为。理解 load 方法的执行顺序对调试和控制应用的初始化过程非常重要。 load 方…

数据中台:业务模型 VS 算法模型,到底该怎么用?

提到数据&#xff0c;就必须提到各种模型。小伙伴们经常有疑惑&#xff1a;从4P、SWOT、RFM到线性回归、决策数、Kmean聚类&#xff0c;都有人管它们叫模型&#xff0c;那这些模型到底有啥区别&#xff1f;今天一文讲清&#xff0c;大家看完再也不迷路哦。 一个例子&#xff0…

高防服务器的机制和原理

高防服务器是一种具备强大防御能力的服务器&#xff0c;旨在保护网站免受各种网络攻击&#xff0c;如DDoS&#xff08;分布式拒绝服务&#xff09;攻击、CC&#xff08;ChallengeCollapsar&#xff09;攻击等。今天小编将从流量过滤与清洗、负载均衡与反向代理、实时监控与报警…