短回答

它不是一个HTTP响应代码,但它被记录为W3作为XMLHttpRequest的status属性(因此也是一个jqXHR对象,对于jQuery用户)的有效值。

它涵盖了一系列可能的情况,其中没有可用于报告的真正的HTTP响应代码,因为您没有发送请求,您明确中止了它,页面正在卸载,或者x出现了许多可能的值之一的x。

长答案

首先重申一下:0不是HTTP状态码。在RFC 7231 Section 6.1中有一个完整的列表,不包括0,第6节的介绍清楚地说明了

The status-code element is a three-digit integer code

其中0不是。

4.7.1 The status attribute

The status attribute must return the result of running these steps:

If the state is UNSENT or OPENED,return 0.

If the error flag is set,return 0.

Return the HTTP status code.

4.5 States

UNSENT (numeric value 0)

The object has been constructed.

OPENED (numeric value 1)

The open() method has been successfully invoked. During this state request headers can be set using setRequestHeader() and the request can be made using the send() method.

The error flag indicates some type of network error or fetch termination. It is initially unset.

还需要注意的是,UNSENT和OPENED之后的下一个可能状态是HEADERS_RECEIVED:

HEADERS_RECEIVED (numeric value 2)

All redirects (if any) have been followed and all HTTP headers of the final response have been received. Several response members of the object are now available.

将这些都放在一起,简短的回答是,0是简单的XMLHttpRequest对象的status属性返回的,当没有真正的状态代码返回时,因为:

>请求尚未发送,或

>请求已发送,但响应的标头尚未收到,或

>发生了在the docs中列出的导致“错误标志”被设置的许多可能情况之一。

好吧,但什么错误可以导致这个神秘的“错误标志”设置?如果你在W3文档中使用CTRL-F作为’错误标志’,你会发现它在发送请求时被取消设置,并且它只被设置为“终止请求”的算法的一部分。寻找算法被调用的所有地方,你会发现它发生在:

>使用open()方法打开(或重新打开)请求

>请求是垃圾回收(例如离开页面时)

>使用abort()方法中止请求

>发生“请求错误”,这可能发生在以下情况之一时:

>发生网络错误,如果发生,可能会发生

>有一个无限重定向循环

>有/有

DNS errors,TLS negotiation failure,or other type of network error

>请求是CORS请求,并且无法共享响应

>发生中止错误,只有在发生时才会发生

The end user cancels the request

无论这意味着什么。我不知道有什么浏览器显示用户当AJAX请求发生,并给他们明确取消他们的机会,所以我认为这是 – 至少今天是不相关的。

>发生超时错误,这意味着,足够了

07004 is not 0 and since the request started the amount of milliseconds specified by timeout has passed

只要XMLHttpRequest去,那就是一切。

除了XMLHttpRequest,我会推测,JavaScript之外的语言的HTTP库可能使用类似的0状态码作为默认值,当没有从服务器接收到状态码。

ajax对象状态0,ajax – HTTP状态代码0是否有任何意义?相关推荐

  1. JavaScript之Ajax-1 Ajax(Ajax原理、Ajax对象属性和方法)

    一.Ajax原理 Ajax简介 - Asynchronous JavaScript And Xml 异步的 JavaScript 和 Xml - Ajax 是一种用来改善用户体验的技术,其实质是,使用 ...

  2. 原生ajax和Jquery的ajax

    目录 原生ajax 传统请求(同步方式)的问题 Ajax优势和作用 Ajax请求与传统请求的区别: ajax原理(方法,属性 ) XMLHttpRequest open send 属性 readySt ...

  3. 【ajax】ajax详解,ajax是什么?

    思路: ajax:(asynchronous javascript and xml) asynchronous 异步的 ajax是什么? ajax是一种用来改善用户体验的技术,其本质是利用浏览器提供的 ...

  4. ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

    AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...

  5. sendrequest ajax数据返回,jquery ajax 还没有调用send()方法 返回的状态码XMLHttpRequest.status 是0 ,怎么解决?...

    jquery ajax 还没有调用send()方法 返回的状态码XMLHttpRequest.status 是0 ,怎么解决?0 嗲女错cbn2013.04.29浏览451次分享举报 function ...

  6. 【从0到1学Web前端】javascript中的ajax对象(一)

    [从0到1学Web前端]javascript中的ajax对象(一) 如今最流行的获取后端的(浏览器从server)数据的方式就是通过Ajax了吧.今天就来具体的来学习下这个知识吧.假设使用ajax来訪 ...

  7. ajax如何实现、readyState五中状态的含义

    转载:http://www.cnblogs.com/teroy/p/3917439.html 熟悉web开发的程序员想必对Ajax也不会陌生.现在已经有很多js框架封装了ajax实现,例如JQuery ...

  8. oracle 12.1.0.2版本对象ku$_user_view是失效状态的修复

    AIX+oracle 12.1.0.2环境,发现对象ku$_user_view是失效状态. 两套库上失效对象的LAST_DDLTIME均为20141107 20:26:33: select owner ...

  9. ajax的4种状态事件,AJAX - onreadystatechange 事件

    onreadystatechange 事件 当请求被发送到服务器时,我们需要执行一些基于响应的任务. 每当 readyState 改变时,就会触发 onreadystatechange 事件. rea ...

  10. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

最新文章

  1. 关于优先队列的一些基本操作
  2. 计算机视觉的“惨胜”:反思大型图像数据集
  3. java基本数据类型_老杜带你学Java【第六课】
  4. 达梦想oracle迁移,oracle存储过程迁移达梦心得
  5. JAVA知识积累 JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】...
  6. epoll用法整理 实现回声服务端
  7. 分布式——ACID原则 CAP理论
  8. 【数据库】navicat运行sql文件报错
  9. 測试AtomicInteger与普通int值在多线程下的递增操作
  10. poj 3181 Dollar Dayz (整数划分问题---递归+DP)
  11. Slack 决定不修复可暴露用户身份的 XSLeak漏洞
  12. Linux查看实时网卡流量的几种方式
  13. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  14. 盘点那些年用过的机械键盘,为什么我最爱Keychron键盘呢
  15. java 分词获取词性_Ansj中文分词Java开发词性分类
  16. 移动电源大家都买多大的?大容量移动电源推荐
  17. html基础-style样式
  18. 2021-8-31 学习日记——idea中快捷键alt+insert找不到get和set方法
  19. Google Chrome浏览器JS调试工具
  20. zbrush插件布尔运算插件perfectbool安装方法

热门文章

  1. centos mysql cpu_MySQL占用CPU100%解决一例
  2. python都可以开发什么_Python的优势到底是什么?Python都能开发什么?
  3. python3 一年中的天数 时间转化为北京时_Python3?环境搭建
  4. c++ primer plus中文版_如何成为一名厉害的C/C++程序员?
  5. iOS获取设备UUID和IDFA
  6. .Net消息队列学习(一)
  7. tomcat,Jboss,weblogic区别与比较
  8. 点击百度地图获取位置详细信息(点击获取当前点击位置信息)
  9. iOS6,7,8,9新特性汇总
  10. AIR中用户离开状态和返回状态