当前位置: 首页 > news >正文

xhr的readyState和status

XMLHttpRequest(XHR)对象中的readyState和status用于监控异步 HTTP 请求的状态。它们分别表示请求的当前阶段和服务器的响应状态。

readyState 用于判断请求所处的阶段,确保数据完全接收。
status 用于判断请求的结果状态(如200表示成功,404表示资源不存在)。

文章目录

    • readyState 属性
    • status 属性
      • 1xx: 信息性状态码
      • 2xx: 成功状态码
      • 3xx: 重定向状态码
      • 4xx: 客户端错误状态码
      • 5xx: 服务器错误状态码
    • 例子

readyState 属性

readyState 属性表示请求的当前状态,取值范围从 0 到 4。每个值的含义如下:

  • 0: UNSENT
    请求未初始化,尚未调用 open() 方法。

  • 1: OPENED
    请求已被初始化,调用了 open() 方法,但尚未调用 send() 方法。

  • 2: HEADERS_RECEIVED
    请求已发送,服务器响应头已被接收,但响应体尚未接收。

  • 3: LOADING
    响应体正在接收中。可以接收到部分数据。

  • 4: DONE

      请求操作已经完成。这意味着数据传输已经彻底完成或失败。
    

    请求已完成,响应已完全接收。此时可以通过 responseTextresponseXML 属性访问响应数据。

在这里插入图片描述

status 属性

1xx:信息响应类,这些状态码表示请求已被接收并正在继续处理。
2xx:处理成功响应类,这些状态码表示请求已成功处理。
3xx:重定向响应类,这些状态码表示客户端需要进一步的操作才能完成请求。
4xx:客户端错误,这些状态码表示请求有误,客户端需修改请求。
5xx:服务端错误,这些状态码表示服务器在处理请求时发生了错误。

1xx: 信息性状态码

这些状态码表示请求已被接收并正在继续处理。

  • 100 Continue
    客户端应继续发送请求。通常用于在发送大型请求时,客户端可以先发送请求的头部,然后等待服务器的确认。

  • 101 Switching Protocols
    服务器已理解客户端的请求,并将其协议更改为客户端所请求的协议。

2xx: 成功状态码

这些状态码表示请求已成功处理。

  • 200 OK
    请求成功,服务器返回所请求的数据。

  • 201 Created
    请求成功并创建了新的资源,通常用于 POST 请求。

  • 202 Accepted
    请求已接受,但尚未处理。此状态通常用于异步处理。

  • 203 Non-Authoritative Information
    服务器成功处理了请求,但返回的信息可能来自另一来源。

  • 204 No Content

      在更新一个资源后,如果不需要向客户端返回任何新的数据
    

    请求成功,但没有返回任何内容,常用于 DELETE 请求。

  • 205 Reset Content
    请求成功,要求客户端重置文档视图。

  • 206 Partial Content
    服务器成功处理了部分 GET 请求,通常用于下载大文件时的断点续传。

3xx: 重定向状态码

这些状态码表示客户端需要进一步的操作才能完成请求。

  • 300 Multiple Choices
    请求的资源有多种选择,用户可以选择其中一个。

  • 301 Moved Permanently
    请求的资源已被永久移动到新 URI,未来的请求应使用新 URI。

  • 302 Found
    请求的资源临时移动到新 URI,客户端应继续使用原 URI。

  • 303 See Other
    请求的响应可在另一个 URI 下找到,客户端应使用 GET 方法请求该 URI。

  • 304 Not Modified
    资源未修改,可以使用缓存的版本。常用于条件请求。

  • 305 Use Proxy
    请求的资源必须通过代理访问。

  • 307 Temporary Redirect
    请求的资源临时移动到新 URI,客户端应使用相同的方法进行请求。

  • 308 Permanent Redirect
    请求的资源已被永久移动,未来请求应使用新 URI,且应使用相同的方法进行请求。

4xx: 客户端错误状态码

这些状态码表示请求有误,客户端需修改请求。

  • 400 Bad Request
    请求无效,服务器无法理解。

  • 401 Unauthorized
    请求未授权,需提供身份验证。

  • 402 Payment Required
    该状态码保留用于将来的需求,目前尚未广泛使用。

  • 403 Forbidden
    服务器理解请求,但拒绝执行,用户无权访问请求的资源。

  • 404 Not Found
    请求的资源未找到。

  • 405 Method Not Allowed
    请求方法不被允许,资源不支持该方法。

  • 406 Not Acceptable
    请求的资源无法满足请求头中指定的条件。

  • 407 Proxy Authentication Required
    需要代理身份验证。

  • 408 Request Timeout
    服务器在等待请求时超时。

  • 409 Conflict
    请求无法完成,因为存在冲突。

  • 410 Gone
    请求的资源已被永久删除,且没有转发地址。

  • 411 Length Required
    服务器要求请求中指定 Content-Length。

  • 412 Precondition Failed
    请求中的某个条件未满足。

  • 413 Payload Too Large
    请求的有效负载太大,服务器无法处理。

  • 414 URI Too Long
    请求的 URI 太长,服务器无法处理。

  • 415 Unsupported Media Type
    请求的媒体类型不被服务器支持。

  • 416 Range Not Satisfiable
    请求的范围无效,服务器无法满足请求。

  • 417 Expectation Failed
    服务器无法满足 Expect 请求头中的期望。

5xx: 服务器错误状态码

这些状态码表示服务器在处理请求时发生了错误。

  • 500 Internal Server Error
    服务器发生意外错误,无法完成请求。

  • 501 Not Implemented
    服务器不支持请求的方法。

  • 502 Bad Gateway
    服务器作为网关或代理时收到无效响应。

  • 503 Service Unavailable
    服务器当前无法处理请求,通常是由于过载或维护。

  • 504 Gateway Timeout
    服务器作为网关或代理时,未能及时从上游服务器获取请求。

例子

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/data', true);xhr.onreadystatechange = function() {if (xhr.readyState === 4) { // DONEswitch (xhr.status) {case 200:console.log('Success:', xhr.responseText);break;case 404:console.error('Error 404: Not Found');break;case 500:console.error('Error 500: Internal Server Error');break;default:console.error('Error:', xhr.status, xhr.statusText);}}
};xhr.send();

以上代码展示了如何根据不同的 HTTP 状态码进行不同的处理。

相关文章:

xhr的readyState和status

XMLHttpRequest(XHR)对象中的readyState和status用于监控异步 HTTP 请求的状态。它们分别表示请求的当前阶段和服务器的响应状态。 readyState 用于判断请求所处的阶段,确保数据完全接收。 status 用于判断请求的结果状态(如200表…...

Rust 力扣 - 238. 除自身以外数组的乘积

文章目录 题目描述题解思路题解代码题解链接 题目描述 题解思路 这题主要有个关键点,就是元素能取0,然后我们分类讨论元素为0的数量 如果数组中存在至少两个元素为0,则每个元素的除自身以外的乘积为0如果数组中仅存在一个0,则为…...

【Vue框架】基础语法练习(1)

其实更多知识点已经在Vue.js官网十分清楚了,大家也可以去官网进行更细节的学习 https://cn.vuejs.org/ 说明:目前最新是Vue3版本的,但是Vue2已经深得人心,所以就是可以支持二者合用。它们最大的区别就是Vue3是组合式API&#xf…...

开源一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码

大家好,我是一颗甜苞谷,今天分享一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码。 前言 在当前的物流仓储行业,企业面临着信息化升级的迫切需求,但往往受限于高昂的软件采购和维护成本。现有的…...

开源一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码

大家好,我是一颗甜苞谷,今天分享一款基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码。 前言 在当今快速发展的商业环境中,库存管理对于企业来说至关重要。然而,许多企业仍然依赖于传统的、手动…...

HTML+JavaScript案例分享: 打造经典俄罗斯方块,详解实现全过程

在本文中,我们将深入探讨如何使用 JavaScript 实现经典的俄罗斯方块游戏。俄罗斯方块是一款广为人知的益智游戏,通过操纵各种形状的方块,使其在游戏区域内排列整齐,以消除完整的行来获得分数。 效果图如下: 一、游戏界面与布局 我们首先使用 HTML 和 CSS 来创建游戏的界面…...

【网页布局技术】项目五 使用CSS设置导航栏

《CSSDIV网页样式与布局案例教程》 徐琴 目录 任务一 制作简单纵向导航栏支撑知识点1.合理利用display:block属性2.利用margin-bottom设置间隔效果3.利用border设置特殊边框 任务二 制作简单横向导航栏任务三 制作带图片效果的横向导航栏任务…...

自学网络安全,网络安全入门学习路线,收藏这篇就够了

在当今高度数字化的时代,网络安全已经成为了一个至关重要的领域。随着网络威胁的不断演变和增长,对于专业网络安全人才的需求也在急剧上升。对于那些对网络安全充满热情并且渴望自学成才的人来说,制定一个系统、全面且高效的学习路线和规划是…...

React Query已过时?新一代请求工具横空出世

大家好!今天我想和你们聊聊一个让我兴奋不已的话题 —— 分页列表请求策略。你们知道吗?这个策略真的帮了我大忙!它不仅让我的代码更简洁,还大大提升了用户体验。说实话,每次用到这个功能,我都忍不住赞叹。…...

视频怎么进行格式转换?6款视频转换MP4格式的免费软件!

在数字时代,视频格式的多样性为我们提供了丰富的观看和编辑选择,但同时也带来了格式不兼容的困扰:MOV、AVI、WMV、MKV……这些格式多多少少都会遇到因不兼容而无法播放或下载分享的场景。当你想要将视频文件从一种格式转换为另一种格式&#…...

智能文档处理平台:免费体验智能化医疗信息提取

前提:医疗行业信息碎片化问题普遍,手工数据录入效率低且易错,导致数据管理难度大。本系统可帮助医疗机构在信息管理上迈向智能化,优化流程并提升效率。 系统概述: 思通数科推出的智能文档处理系统,专为解…...

Java 中 InputStream 的使用:try-with-resources 与传统方式的比较

在 Java 中,处理输入输出流时,确保资源的正确管理至关重要。特别是 InputStream 这样的流,一旦使用完成,必须正确关闭以释放资源。本文将对两种常见的资源管理方式进行比较:try-with-resources 语句和传统的 try-catch…...

【MATLAB源码-第271期】基于matlab的雷达发射回波模拟,包括匹配滤波,加窗旁瓣控制,以及MTD处理。

操作环境: MATLAB 2022a 1、算法描述 雷达系统是一种广泛应用于目标探测和跟踪的技术,其核心在于发射电磁波并分析返回信号。本文将探讨雷达发射波形、回波信号的模拟、匹配滤波的过程、加窗控制旁瓣的策略以及慢时间MTD处理的整体系统框架。 一、雷…...

Linux系统编程——信号量

一、信号量的定义和原理 1、概念 原子操作:不可中断的一个或者一系列的操作,即一件事要么做要么不做。临界资源:不同进程能够看到的一份公共资源,一次只能被一个进程使用。PV操作:由于信号量只能进行两种操作等待和发…...

Oracle索引问题汇总

一、oracle 数据库TIMESTAMP 时间字段,设置索引后,通过该字段进行排序,索引排序不生效问题 1. 记录下在工作中遇到的一次索引问题 问题描述: 数据库:oracle; 日志记录表中的一个创建时间(create…...

基于QT用工厂模式实现串口通信与网络通信激光器的控制

配置文件网络配置:IP+Port 串口配置:端口号+波特率 首先,我们需要创建一个配置文件 config.ini,内容如下: [SerialLaser] portName = COM1 baudRate = 9600[NetworkLaser] ipAddress = 192.168.1.1 port = 1234两类激光器的实现: #include <QCoreApplicat…...

【代码随想录Day58】图论Part09

dijkstra&#xff08;堆优化版&#xff09;精讲 题目链接/文章讲解&#xff1a;代码随想录 import java.util.*;class Edge {int to; // 邻接顶点int val; // 边的权重Edge(int to, int val) {this.to to;this.val val;} }class Pair<U, V> {public final U first; …...

_或者%关键字模糊匹配查出所有数据

1、问题 sql模糊匹配&#xff0c;如果页面输入_或者%&#xff0c;可以查出所有数据。 (1) SELECT * FROM test WHERE sfsc N and zdzwm like %%% (2) SELECT * FROM test WHERE sfsc N and zdzwm like %_% 2、解决方案 &#xff08;1&#xff09;mysql数据库 加转义字…...

【Python】转换得到图片的rgb565格式数据

使用方法&#xff1a;首先在代码同级目录创建input_images文件夹&#xff0c;然后将需要转换的图片放进去。 然后根据你的需要&#xff0c;修改代码最下面的crop_size、resize以及file_name。 最后点击运行&#xff0c;即可得到图片的rgb565格式数据 from PIL import Image, I…...

隨筆 20241024 Kafka中的ISR列表:分区副本的族谱

在分布式系统中&#xff0c;数据的一致性和可靠性至关重要。Apache Kafka作为一个强大的流处理平台&#xff0c;利用其分区和副本机制来确保这些特性。在Kafka中&#xff0c;ISR&#xff08;In-Sync Replicas&#xff09;列表是一个关键概念&#xff0c;它用来追踪与领导者副本…...

基于T4技术栈的现代全栈应用开发实践与最佳实践解析

1. 项目概述&#xff1a;一个现代全栈应用的原型与起点最近在GitHub上看到一个挺有意思的项目&#xff0c;叫timothymiller/t4-app。乍一看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但点进去你会发现&#xff0c;这其实是一个精心设计的全栈Web应用模板。它不是某个…...

12-分布式系统测试-缓存-注册中心与链路追踪验证

分布式系统测试&#xff1a;缓存、注册中心与链路追踪验证上篇咱们搞定了消息队列测试&#xff0c;今天继续深入分布式系统的其他组件——Redis缓存、服务注册中心、分布式链路追踪。这些"基础设施"的测试往往被忽略&#xff0c;但出了问题定位起来最头疼。一、Redis…...

Codepack:标准化开发配置与自动化工具链的工程实践

1. 项目概述&#xff1a;一个为开发者准备的“代码行囊” 最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫 JasonLovesDoggo/codepack 。乍一看名字&#xff0c;你可能会觉得这又是一个普通的代码库或者工具集。但点进去仔细研究后&#xff0c;我发现…...

量子信号处理技术及其在离子阱系统中的应用

1. 量子信号处理技术概述量子信号处理&#xff08;Quantum Signal Processing, QSP&#xff09;是近年来量子计算领域涌现的一项基础性技术&#xff0c;它通过精心设计的量子比特旋转序列&#xff0c;实现对量子数据的系统性多项式变换。这项技术的核心价值在于&#xff0c;它为…...

基于Helm与Kubernetes的以太坊节点自动化部署与运维实战

1. 项目概述&#xff1a;当以太坊遇见Kubernetes如果你和我一样&#xff0c;在区块链基础设施领域摸爬滚打多年&#xff0c;从早期手动编译客户端、配置systemd服务&#xff0c;到后来用Docker Compose编排节点&#xff0c;每一步都伴随着大量的重复劳动和运维痛点。当节点数量…...

半导体供应链风险管理:从噪音中识别信号,构建韧性决策框架

1. 从一则旧闻看半导体产业的“噪音”与“信号”2013年春天&#xff0c;一则关于朝鲜可能威胁韩国三星和SK海力士内存芯片工厂的消息&#xff0c;在投资圈和部分科技媒体中泛起了一阵涟漪。一位来自俄亥俄州的投资者言之凿凿&#xff0c;指出全球65%的DRAM和55%的闪存产能集中在…...

Python 爬虫反爬突破:CDN 防护节点穿透采集

前言 当下大型互联网站点、电商平台资讯门户、行业数据网站均全面接入 CDN 内容分发网络&#xff0c;借助全球节点缓存、流量调度、智能分流、节点 IP 隐身、区域访问限制等机制构建底层防护体系。传统爬虫直接请求源站 IP 的方式会被 CDN 节点拦截、跳转、限速、IP 封禁、节点…...

LeetCode 岛屿数量题解

LeetCode 岛屿数量题解 题目描述 给定一个二维网格地图 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;&#xff0c;计算岛屿的数量。 示例&#xff1a; 输入&#xff1a;grid [ ["1","1","1","1","0"], …...

别再只盯着应力云图了!用ANSYS Workbench的‘圣维南原理’和模型简化,把你的计算效率提升200%

别再只盯着应力云图了&#xff01;用ANSYS Workbench的‘圣维南原理’和模型简化&#xff0c;把你的计算效率提升200% 有限元分析工程师常常陷入一个误区&#xff1a;认为模型越精细&#xff0c;结果越准确。但现实情况是&#xff0c;一个未经合理简化的复杂模型不仅会消耗大量…...

ClickHouse性能优化:OLAP数据库实战,让查询飞起来

**作者&#xff1a;洛水石** | **更新日期&#xff1a;2026-05-11** | **标签&#xff1a;ClickHouse | OLAP | 数据库优化 | 大数据**前言上个月&#xff0c;运营同学找我抱怨&#xff1a;每天凌晨的报表查询要等5分钟才能出来&#xff0c;数据量大的时候直接超时。作为DBA&am…...