ajax与json

ops/2025/1/17 0:05:42/

目录

  • 1、ajax
    • 1.1、什么是ajax
    • 1.2、ajax核心
      • AJAX 工作原理
      • 示例代码
      • 重要属性和方法
      • 兼容性
    • 1.3、jQuery ajax
      • 什么是jQuery ajax
      • jQuery AJAX 核心概念
      • 基本用法
        • 1. **使用 $.ajax() 方法**
        • 2. **使用简化方法**
          • **使用 $.get() 方法**
          • **使用 $.post() 方法**
      • 常用配置选项
      • 示例:发送表单数据
  • 2、json
    • 2.1、什么是json
    • 2.2、JSON 语法规则
      • 嵌套结构
      • 注释
      • 错误示例

ajax_1">1、ajax

ajax_3">1.1、什么是ajax

AJAX 全称为 Asynchronous JavaScript And Xml ,表示异步的Java脚本和 Xml 文件,是一种异步刷新技术。

ajax_7">1.2、ajax核心

  1. XMLHttpRequest 对象

    • XMLHttpRequest 是 AJAX 的核心技术,它是一个浏览器内置的对象,可以向服务器发送 HTTP 请求并接收响应,而不必重新加载整个网页。
  2. 异步请求

    • AJAX 的核心是异步通信,这意味着客户端可以向服务器发送请求,并在后台等待响应,同时不阻塞用户界面。
  3. 数据交换格式

    • 虽然 AJAX 中的 “X” 代表 XML,但实际应用中,数据可以是任何形式,包括 XML、JSON、文本等。JSON 因其轻量级和易用性,现在是最常见的数据格式。
  4. 回调函数

    • 在 AJAX 中,通常使用回调函数来处理服务器的响应。当异步请求完成时,回调函数会被调用,并处理返回的数据。

AJAX 工作原理

  1. 创建 XMLHttpRequest 对象

    • 使用 JavaScript 创建一个 XMLHttpRequest 实例。
  2. 配置请求

    • 设置请求方法(如 GET、POST)、URL 和是否异步。
  3. 发送请求

    • 调用 send() 方法发送请求到服务器。
  4. 处理响应

    • 通过监听 XMLHttpRequestonreadystatechange 事件,当请求状态改变时,检查状态码和响应数据,并进行相应的处理。

示例代码

以下是一个简单的 AJAX 示例,使用 GET 请求从服务器获取数据:

javascript">// 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();// 配置请求
xhr.open('GET', 'https://api.example.com/data', true);// 设置请求头
xhr.setRequestHeader('Content-Type', 'application/json');// 定义回调函数
xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {// 请求成功,处理响应数据var data = JSON.parse(xhr.responseText);console.log(data);} else if (xhr.readyState === 4) {// 请求失败console.error('Request failed with status', xhr.status);}
};// 发送请求
xhr.send();

重要属性和方法

  • readyState

    • 0: 请求未初始化
    • 1: 服务器连接已建立
    • 2: 请求已接收
    • 3: 请求处理中
    • 4: 请求已完成,响应就绪
  • status

    • 200: 请求成功
    • 404: Not Found
    • 500: Internal Server Error
  • responseText

    • 服务器返回的文本数据
  • responseXML

    • 服务器返回的 XML 数据

兼容性

  • 老式浏览器

    • 在一些旧的浏览器中,需要使用 ActiveXObject 来创建 XMLHttpRequest 对象。
  • 现代浏览器

    • 所有现代浏览器都支持 XMLHttpRequest 对象。

ajax_93">1.3、jQuery ajax

ajax_95">什么是jQuery ajax

jQuery 是一个非常流行的 JavaScript 库,它简化了 HTML 文档的操作、事件处理、动画和 Ajax 交互。使用 jQuery 可以更方便地进行 AJAX 请求。jQuery 提供了一个强大的 $.ajax() 方法,可以轻松地发送 AJAX 请求,并处理响应。

jQuery AJAX 核心概念

  1. $.ajax() 方法

    • $.ajax() 是 jQuery 中用于发送 AJAX 请求的主要方法。它提供了丰富的配置选项,可以灵活地控制请求的各个方面。
  2. 简化的 AJAX 方法

    • jQuery 还提供了几个简化的 AJAX 方法,如 $.get(), $.post(), $.getJSON() 等,这些方法在常见的使用场景下更加方便。

基本用法

ajax__109">1. 使用 $.ajax() 方法

以下是一个使用 $.ajax() 方法的基本示例:

javascript">$.ajax({url: 'https://api.example.com/data',  // 请求的 URLtype: 'GET',  // 请求方法(GET、POST 等)dataType: 'json',  // 预期服务器返回的数据类型(json、xml、html 等),默认是application/textsuccess: function(response) {// 请求成功时的回调函数console.log('Success:', response);},error: function(xhr, status, error) {// 请求失败时的回调函数console.error('Error:', status, error);},complete: function(xhr, status) {// 请求完成时的回调函数(无论成功或失败)console.log('Complete:', status);}
});
2. 使用简化方法
使用 $.get() 方法
javascript">$.get('https://api.example.com/data', function(response) {// 请求成功时的回调函数console.log('Success:', response);
}).fail(function(xhr, status, error) {// 请求失败时的回调函数console.error('Error:', status, error);
}).always(function() {// 请求完成时的回调函数(无论成功或失败)console.log('Complete');
});
使用 $.post() 方法
javascript">$.post('https://api.example.com/data', { key: 'value' }, function(response) {// 请求成功时的回调函数console.log('Success:', response);
}).fail(function(xhr, status, error) {// 请求失败时的回调函数console.error('Error:', status, error);
}).always(function() {// 请求完成时的回调函数(无论成功或失败)console.log('Complete');
});

常用配置选项

  • url:请求的 URL。
  • type:请求方法(GET、POST 等)。
  • data:发送到服务器的数据,可以是字符串、对象或数组。
  • dataType:预期服务器返回的数据类型(json、xml、html 等)。
  • contentType:发送到服务器的数据类型(默认为 application/x-www-form-urlencoded; charset=UTF-8)。
  • success:请求成功时的回调函数。
  • error:请求失败时的回调函数。
  • complete:请求完成时的回调函数(无论成功或失败)。
  • timeout:请求超时时间(毫秒)。

示例:发送表单数据

假设你有一个表单,你希望在用户提交表单时使用 AJAX 发送数据到服务器:

<form id="myForm"><input type="text" name="name" placeholder="Name"><input type="text" name="email" placeholder="Email"><button type="submit">Submit</button>
</form><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>javascript">
$(document).ready(function() {$('#myForm').submit(function(event) {event.preventDefault();  // 阻止表单默认提交var formData = $(this).serialize();  // 序列化表单数据$.ajax({url: 'https://api.example.com/submit',type: 'POST',data: formData,success: function(response) {console.log('Success:', response);alert('Form submitted successfully!');},error: function(xhr, status, error) {console.error('Error:', status, error);alert('An error occurred while submitting the form.');}});});
});
</script>

json_214">2、json

json_216">2.1、什么是json

JSON 全称为 JavaScript Object Notation,表示 Javascript 对象符号,是一种网络数据交换的格式,通常在服务器端和客户端之间使用。

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON 基于 JavaScript 的一个子集,但它是一种独立于语言的文本格式。

2.2、JSON 语法规则

  1. 数据格式

    • JSON 数据由键值对组成,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔。
    • 键必须用双引号 " 包围,值可以是字符串、数字、对象、数组、布尔值或 null
  2. 对象

    • JSON 对象是一个无序的键值对集合,用花括号 {} 包围。

    示例:

    json">{"name": "Alice","age": 30,"isStudent": false
    }
    
  3. 数组

    • JSON 数组是一个有序的值列表,用方括号 [] 包围。

    示例:

    json">["apple",123,true,{ "key": "value" },[1, 2, 3]
    ]
    
  4. 字符串

    • JSON 字符串必须用双引号 " 包围。

    示例:

    json">"Hello, World!"
    
  5. 数字

    • JSON 数字可以是整数或浮点数,支持正数、负数和零。

    示例:

    json">42
    -3.14
    0
    
  6. 布尔值

    • JSON 支持 truefalse 两个布尔值。

    示例:

    json">true
    false
    
  7. null

    • JSON 中的空值用 null 表示。

    示例:

    json">null
    

嵌套结构

JSON 支持嵌套结构,即对象中可以包含对象或数组,数组中也可以包含对象或数组。

示例:

json">{"name": "Bob","age": 25,"address": {"street": "123 Main St","city": "Anytown","zip": "12345"},"hobbies": ["reading", "swimming", "coding"],"isEmployed": true,"spouse": null
}

注释

JSON 本身不支持注释,但在某些实现中,注释可以被忽略。如果需要在 JSON 中添加注释,通常建议在数据之外的上下文中进行。

错误示例

  • 键未加引号

    json">{name: "Alice"  // 错误:键必须用双引号包围
    }
    
  • 字符串未加引号

    json">{"name": Alice  // 错误:字符串必须用双引号包围
    }
    
  • 多余的逗号

    json">{"name": "Alice",  // 错误:最后一个键值对后不能有逗号"age": 30,
    }
    

http://www.ppmy.cn/ops/150669.html

相关文章

Termora 一个开源的 SSH 跨平台客户端工具

Termora 是一个终端模拟器和 SSH 客户端&#xff0c;支持 Windows&#xff0c;macOS 和 Linux。 功能特性 支持 SSH 和本地终端支持 SFTP 文件传输支持 Windows、macOS、Linux 平台支持 Zmodem 协议支持 SSH 端口转发支持配置同步到 Gist支持宏&#xff08;录制脚本并回放&…

c++ 手写queue循环队列

继承与多态 继承 父子出现同名的成员问题 #include <iostream>using namespace std; //父子类中出现重名成员 //定义一个父类 class Father{ public:string name; protected:int pwd; private:int money; public:Father(){cout<<"Father::构造"<&l…

从玩具到工业控制--51单片机的跨界传奇【2】

咱们在上一篇博客里面讲解了什么是单片机《单片机入门》&#xff0c;让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识&#xff0c;顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话&#xff0c;可以看看博主的C语言专栏哟&#xff…

如何通过 Zero Trust 模型防止内外部威胁?

随着网络攻击方式的不断演化&#xff0c;传统的安全防护措施逐渐暴露出明显的不足。无论是企业内部员工的操作失误&#xff0c;还是外部黑客的精心策划&#xff0c;传统的“边界防御”模式已不再能够有效地应对日益复杂的网络威胁。为了应对这些挑战&#xff0c;Zero Trust&…

OpenGL中Shader LOD失效

1&#xff09;OpenGL中Shader LOD失效 2&#xff09;DoTween的GC优化 3&#xff09;开发微信小程序游戏有没有类似Debug真机图形的方法 4&#xff09;射线和Mesh三角面碰撞检测的算法 这是第418篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了U…

【编程语言】C/C++语言常见标准和规范

C/C 是两种功能强大且广泛使用的编程语言。尽管它们没有像 Java 那样强制性的命名规则&#xff0c;但为了提高代码的可读性和可维护性&#xff0c;遵循一些普遍认同的编程规范和标准仍然是非常重要的。本文将探讨 C/C 编程中的一些命名规范及标准&#xff0c;以帮助开发者编写更…

C#上位机通过CAN总线发送bin文件

让gpt生成一段代码用来把bin文件通过can总线发出去 c#代码还是比较强大的&#xff0c;各种功能基本都是一两行代码就实现了&#xff0c;这里记录一下对这个代码的理解和解读 主要代码如下&#xff0c;传入bin文件的地址即可将其从指定的can通道发送出去&#xff1a; public …

windows wsl ubuntu22 远程桌面连接

转载链接&#xff1a;https://canwdev.github.io/VM%E8%99%9A%E6%8B%9F%E6%9C%BA/WSL/wsl2%20wslg%20%E9%85%8D%E7%BD%AE%E5%B9%B6%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%28xrdp%29/ Wsl2 wslg 配置并开启远程桌面(xrdp) 准备工作 推荐到微软应用商店下载最…