XMLHttpRequest的问题.完成值支持在FF / Chrome
Problem with XMLHttpRequest.DONE values supported in FF / Chrome
我有一段Javascript需要调试:
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE) {
if (this.status === 200) {
success = true;
}
}
};
浏览Chrome和Firefox,我发现第一个"if"是失败的。我可以看到this.readyState
被设置为1
,根据W3C规范,这应该意味着OPENED
。但是XMLHttpRequest.DONE
在Firebug中显示为undefined
而不是4
。
http://www.w3.org/TR/XMLHttpRequest/状态
在Firefox和Chrome中是否存在不支持这些值的问题?
您应该检查readyState是否对应一个数值,在您的示例中为4。
一些浏览器不知道XMLHttpRequest.DONE
属性,所以你应该在第一个'if'之前检查如下:
var DONE = (typeof XMLHttpRequest.DONE !== 'undefined') ? XMLHttpRequest.DONE : 4;
你可以使用httpRequest变量已经存在的DONE值:
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (this.readyState === this.DONE) {
if (this.status === 200) {
success = true;
}
}
};
相关文章:
- WebRTC视频聊天可以在FF中使用,但不能在Chrome中使用
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 在FF和Chrome中接收用于JavaScript函数的TypeError
- FF和Chrome中的 ftp:// 网页不会加载 file:// 脚本
- xpath query for FF/Chrome
- 有条件地将内容脚本加载到 Safari 扩展中,就像在 FF/Chrome 中一样
- jQueryAJAX调用在FF/Chrome中调试时有效
- Javascript弹出-工作在FF &Chrome,在IE中失败
- 它适用于jsFiddle,但不是在我的浏览器(FF, Chrome)
- Google OAuth 2.0 "请求权限"网页不关闭(FF, Chrome)
- Javascript/JQuery浏览器测试框架为IE9/FF/Chrome
- jQuery代码工作在FF, Chrome,而不是在IE
- jQuery美元.从本地目录获得不同的行为在IE与FF, Chrome
- Javascript代码动态改变图像的工作在IE不是FF, Chrome等:(
- Javascript定时器使用风格.背景位置在ff &chrome,在IE就没那么幸运了
- XMLHttpRequest的问题.完成值支持在FF / Chrome
- 使用eval()在IE8和ie7中不工作,但在IE9, FF,Chrome中工作
- 获得插入符号的位置(字符索引)在输入字段上掉落事件(FF, Chrome)