AJAX问题 XMLHttpRequest.status = 0是什么含义

简介: 在调用AJAX的时候遇到了XMLHttpRequest. status为0 的情况,http协议里可是没这个状态码的,众所周知,XMLHttpRequest. Status为HTTP请求状态码,一般为1xx-5xx,这个0是什么含义,让我觉得很好奇。

在调用AJAX的时候遇到了XMLHttpRequest. status为0 的情况http协议里可是没这个状态码的众所周知XMLHttpRequest. Status为HTTP请求状态码一般为1xx-5xx,这个0是什么含义让我觉得很好奇。

XMLHttpRequest 对象的三有个重要的属性

onreadystatechange 

存储函数或函数名每当 readyState 属性改变时就会调用该函数。

readyState

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

0: 请求未初始化

1: 服务器连接已建立

2: 请求已接收

3: 请求处理中

4: 请求已完成且响应已就绪

status 

200: "OK"

404: 未找到页面

 

XMLHttpRequest status = 0 问题

最后翻啊翻啊找啊找啊终于找到一个XMLHttpRequest的说明

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

status的值一定会返回运行这些步骤的结果。

1、If the state is UNSENT or OPENED, return 0.如果状态是UNSENT或者OPENED返回0
2、If the error flag is set, return 0.如果错误标签被设置返回0
3、Return the HTTP status code.返回HTTP状态码

 

如果在HTTP返回之前就出现上面两种情况就出现0了。

后来我又查阅到了0 代表本地响应成功。

 

先说两个button一个是url是file:///E:/test2.html另外一个是http://www.baidu.com。第一个button的url访问只是本地打开没有通过服务器自己可以用Wireshark捉包。

应该是xmlhttp自己在模拟因为根本就没通过服务器。本地直接打开而已。OPENED了所以status为0。

 

第二个button的url访问虽然是其他域名抓包是有的但是这是跨域访问了

虽然去访问了应该是浏览器跨域的返回头没有允许所以浏览器阻止Access-Control-Allow-Origin这个属性。所以status为0。

 

相关文章
|
2月前
|
XML JSON 前端开发
ajax中各个参数的含义是什么?
实际上,jQuery的 `$.ajax()` 方法支持比这个列表更多的参数,但这些是最常用的。请根据您的特定需求灵活配置这些参数。了解每个参数的作用和可接受的值对于有效地使用AJAX非常关键,能够帮助您建立健壮的交互式网页应用。
24 0
|
3月前
|
XML 缓存 前端开发
AJAX中get和post的区别
AJAX中get和post的区别
27 0
|
4月前
|
XML 前端开发 JavaScript
AJAX - 创建 XMLHttpRequest 对象
AJAX - 创建 XMLHttpRequest 对象
|
前端开发 JavaScript API
Ajax请求方法--详解
Ajax请求方法--详解
|
Web App开发 前端开发 JavaScript
ajax获取success返回值的解决方案
ajax获取success返回值的解决方案
134 0
|
JSON JavaScript 前端开发
Ajax请求成功但是一直进入error
返回error函数的异常e,在控制台打印了一下,发现状态码是200,后台响应的数据也有。 原因如下: 在1.3版本的jQuery以后,严格要求了json格式,如果返回的值不是json格式,他就会执行error函数。 所以如果想让他走success函数的话,还是在后台把数据格式化成json格式吧。
|
前端开发 JavaScript 数据格式
学习AJAX必知必会(4)~JQuery发送Ajax请求、ajax使用fetch函数(返回值是Promise对象)
学习AJAX必知必会(4)~JQuery发送Ajax请求、ajax使用fetch函数(返回值是Promise对象)
242 0
|
前端开发
Ajax-17:使用fetch函数发送ajax请求
Ajax-17:使用fetch函数发送ajax请求
1279 0
|
前端开发 JavaScript 数据安全/隐私保护
【error】jQuery ajax请求错误返回status 0和错误error的问题 : ajax error:{"readyState":0,"status":0,"statusText":"error"}
【error】jQuery ajax请求错误返回status 0和错误error的问题 : ajax error:{"readyState":0,"status":0,"statusText":"error"} 异常描述: 第一次ajax,后台都没问题,但是却进入error方法,错误码0,错误信息error。
4224 0
|
缓存 前端开发 数据安全/隐私保护
第109天:Ajax请求GET和POST的区别
一、Ajax请求GET和POST的区别   1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来   2.使用Get请求发送数据量小,Post请求发送数据量大   3.get请求需注意缓存问题,post请求不需担心这个问题 Get方式:   用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。
1631 0