AJAX问题 XMLHttpRequest.status = 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。
最新文章
- 枚举Enum使用
- Django如何搭建服务器
- HowTo: Linux Server Change OR Setup The Timezone
- 【转载】solr初体验
- SQLServer如何快速生成100万条不重复的随机8位数字
- Menu bar missing from ClearCase Explorer
- 寻找最大数--nyoj题目448
- tcpdump抓包并保存成cap文件
- 4Sum -- LeetCode
- 2012在数据库技术会议上的讲话PPT打包
- linux下的权限控制
- Jmeter_打印当前时间戳&;打印偏移时间戳
- css布局:左边定宽、右边自适应
- 如何创建自己的composer包
- [UE4]Input Key Selector
- MD5盐值加密
- idea 执行maven 命令
- Why Go's Declaration Syntax is better than C++?
- Spider Studio 新版本 (20140225) - 设置菜单调整 / 提供JQueryContext布局相关的方法
- mysql_config_editor的使用