AJAX介绍

XMLHttpRequest

get请求使用

const xhr = new XMLHttpRequest();
xhr.open("GET", "/data/test.json", true);
xhr.onreadystatechange = function () {if (xhr.readyState === 4) {if (xhr.status === 200) {alert(xhr.responseText);} else {console.log("其他情况");}}
};xhr.send(null);

post请求

const xhr = new XMLHttpRequest();
xhr.open("POST", "/data/test.json", true);
xhr.onreadystatechange = function () {if (xhr.readyState === 4) {if (xhr.status === 200) {alert(xhr.responseText);} else {console.log("其他情况");}}
};const postData = {userName: "zhangsan",password: "xxx",
};xhr.send(JSON.stringify(postData));

xhr.readyState

用的最多的还是4

 xhr.status

手写AJAX

function myAjax(url, method = "GET", data = null, headers = {}) {return new Promise((resolve, reject) => {const xhr = new XMLHttpRequest();xhr.open(method, url, true);for (const [key, value] of Object.entries(headers)) {xhr.setRequestHeader(key, value);}xhr.onreadystatechange = function () {if (xhr.readyState === 4) {if (xhr.status >= 200 && xhr.status < 300) {try {const response = xhr.responseText? JSON.parse(xhr.responseText): null;resolve(response);} catch (error) {reject(new Error("JSON解析失败"));}} else {const errorMap = {400: "请求参数错误",401: "未授权",403: "禁止访问",404: "资源未找到",500: "服务器内部错误",};reject(new Error(errorMap[xhr.status] || `请求失败,状态码:${xhr.status}`));}}};xhr.send(method.toUpperCase() === "GET" ? null : data);});
}

ajax的常见使用

  • 传统 XMLHttpRequest:兼容性好,适合旧项目。

  • Fetch API:现代、简洁,推荐用于新项目。

  • Axios:功能强大,适合企业级应用。

存储

cookie

 缺点

localStorage和sessionStorage

区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28092.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows下使用docker安装rocketmq

最近准备把rocketmq重新学下&#xff0c;先把环境搭建好 Windows下安装docker拉取最新的rocketmq启动nameserver启动broker 首先在Windows下安装docker&#xff0c;之前不知道为什么&#xff0c;docker desktop启动一直报错&#xff0c;今天把Windows更新了一下&#xff0c;do…

Oracle 11g的部署配置

1、进入官网下载所需版本的Oracle 2、安装 ①&#xff1a;选择setup.exe开始安装 ②&#xff1a;安装提示如下&#xff0c;直接忽略&#xff0c;选是 ③&#xff1a;配置安全更新 填写邮箱&#xff0c;并取消勾选 ④&#xff1a;如果点击下一步&#xff0c;提示什么代理啥的…

【RabbitMQ】RabbitMQ的核心概念与七大工作模式

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【中间件】企业级中间件剖析 在现代分布式系统和微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09; 是解决服务间通信、系统解耦和流量削峰的关键技术之一。而 RabbitMQ 作为一…

springboot宠物服务系统-计算机毕业设计源码29146

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3 论文结构与章节安排 2 系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 2.2.2 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 系统总体…

使用 CLion 代替 BeyondStudio for NXP 开发 JN 5169

使用 CLion 代替 BeyondStudio for NXP 开发 JN 5169 一、安装 CLion二、搭建 NXP JN5169 ZigBee 3.0 开发环境和下载示例工程三、配置 CLion1、使用 CLion 打开 JN-AN-12192、创建自定义构建目标3、添加构建配置4、在构建前添加外部工具5、添加 6 个运行配置对于 6 个构建选项…

《鸢尾花数学大系:从加减乘除到机器学习》开源资源

《鸢尾花数学大系&#xff1a;从加减乘除到机器学习》开源资源 Gitee&#xff1a;https://gitee.com/higkoo/ bilibili&#xff1a;https://space.bilibili.com/513194466 GitHub&#xff1a;https://github.com/Visualize-ML

操作系统启动——前置知识预备

文章目录 1. 理解冯诺依曼体系结构1.1 简单见一见冯诺依曼1.2 进一步认识1.3 为什么一定要有内存的存在&#xff1f; 2. 操作系统2.1 概念2.2 设计OS的目的2.3 OS的核心功能2.4 如何理解“管理”二字&#xff1f;(小故事版)2.5 系统调用和库函数概念 3. 进程简述3.1 基本概念3.…

PMP项目管理—资源管理篇—5.管理团队

文章目录 基本信息4W1HITTO输入工具与技术输出 冲突管理解决方案八字方针冲突管理策略 基本信息 4W1H what: 跟踪团队成员工作表现&#xff0c;提供反馈&#xff0c;解决问题并管理团队变更&#xff0c;以优化项目绩效的过程。why: 影响团队行为、管理团队冲突&#xff0c;解…

数据结构与算法:选择排序

介绍 选择排序是一种简单直观的排序算法&#xff0c;其基本思想是&#xff1a;从待排序的数据元素中&#xff0c;每次选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其与序列的起始位置交换&#xff0c;然后继续对剩余的元素进行排序&#xff0c;知道整个序列排…

大模型提示词推理架构对比:ReAct/CoT/ToT

人工智能&#xff08;AI&#xff09;已不再只是一个流行词——它是驱动现代问题解决的引擎。但AI究竟是如何“思考”的呢&#xff1f;这就涉及到了推理框架。在本文中&#xff0c;我们将探讨三种关键框架&#xff1a;ReAct&#xff08;推理与行动&#xff09;、思维链&#xff…

【Linux】冯诺依曼体系结构-操作系统

一.冯诺依曼体系结构 我们所使用的计算机&#xff0c;如笔记本等都是按照冯诺依曼来设计的&#xff1a; 截止目前&#xff0c;我们所知道的计算机都是由一个一个的硬件组装起来的&#xff0c;这些硬件又由于功能的不同被分为了输入设备&#xff0c;输出设备&#xff0c;存储器…

【云原生】Spring Cloud是什么?Spring Cloud版本介绍

什么是SpringCloud 上一章节介绍了总体的SpringCloud的总体学习章节&#xff0c;因为最近项目刚好需要用到SpringCloud来搭建微服务项目、所以就跟着大家一起来再学习巩固下SpringCloud的相关知识 SpringCloud是基于SpringBoot提供了一套微服务解决方案&#xff0c;包括服务注…

人机交互革命:从触屏到脑波的13维战争

人机交互革命&#xff1a;从触屏到脑波的13维战争 一、交互维度大爆炸&#xff1a;重新定义人机沟通边界 当ChatGPT开始解析你的微表情&#xff0c;当Neuralink芯片能读取皮层信号&#xff0c;人机交互已突破【键鼠】的次元壁。我们正经历人类史上最大规模的感官革命&#xff…

高考數學。。。

2024上 具体来说&#xff0c;直线的参数方程可以写为&#xff1a; x1t y−t z1t 二、简答题(本大题共5小题&#xff0c;每小题7分&#xff0c;共35分。) 12.数学学习评价不仅要关注结果评价&#xff0c;也要关注过程评价。简要说明过程评价应关注哪几个方面。…

低空监视-无人机专用ADS-B应答机

产品简介 ping200XR是经过TSO适航认证的无人机专用ADS-B应答机&#xff0c;用于中大型无人机的低空监视。将经过认证的航空级航电设备引入无人机系统。该应答机支持航管二次雷达A&#xff0c;C/S模式和ADS-B OUT。重量仅52克满足无人机所面临的尺寸、重量、功耗的挑战&#xf…

Compose Multiplatform+Kotlin Multiplatfrom 第四弹跨平台

文章目录 引言功能效果开发准备依赖使用gradle依赖库MVIFlow设计富文本显示 总结 引言 Compose Multiplatformkotlin Multiplatfrom 今天已经到compose v1.7.3&#xff0c;从界面UI框架上实战开发看&#xff0c;很多api都去掉实验性注解&#xff0c;表示稳定使用了&#xff01;…

VLM-E2E:通过多模态驾驶员注意融合增强端到端自动驾驶

25年2月来自香港科大广州分校、理想汽车和厦门大学的论文“VLM-E2E: Enhancing End-to-End Autonomous Driving with Multimodal Driver Attention Fusion”。 人类驾驶员能够利用丰富的注意语义&#xff0c;熟练地应对复杂场景&#xff0c;但当前的自动驾驶系统难以复制这种能…

Linux的进程观:简单性如何成就强大性(三)

1. 环境变量 1.1. 基本概念 环境变量(environment variables)⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数。 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪⾥&#xff0c;但是照样可以链接…

广域互联网关键技术详解(GRE/LSTP/IPsec/NAT/SAC/SPR)

《广域互联网关键技术详解》属于博主的“广域网”专栏&#xff0c;若想成为HCIE&#xff0c;对于广域网相关的知识需要非常了解&#xff0c;更多关于广域网的内容博主会更新在“广域网”专栏里&#xff0c;请持续关注&#xff01; 一.前言 广域互联技术纷杂多样&#xff0c;不…

论文阅读笔记:UniFace: Unified Cross-Entropy Loss for Deep Face Recognition

论文阅读笔记&#xff1a;UniFace: Unified Cross-Entropy Loss for Deep Face Recognition 1 背景2 创新点3 方法3.1 回顾softmax损失3.2 统一交叉熵损失3.3 人脸验证中的UCE损失3.4 进一步的优化3.4.1 边际UCE损失3.4.2 平衡BCE损失 4 实验4.1 消融实验4.2 和SOTA方法对比 论…