我喜欢在没有jquery的情况下尽可能多地执行代码,因此对于ajax请求,我一直在做一些与MDN所说的相似的事情:
function alertContents(httpRequest) {
try {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
} else {
alert('There was a problem with the request.');
}
}
}
catch( e ) {
alert('Caught Exception: ' + e.description);
}
}
我正在查看Google教程以进行扩展,他们使用了他们的请求。 onload是一个事件监听,当readystate为4且状态为200时运行吗?如果没有,它是什么,我何时使用它而不是上述方法。
答案 0 :(得分:2)
具有交叉源的XHR级别2实现除onreadystatechange之外的其他事件,这些事件是进度事件(指定statechange); loadstart,progress,error,abort,load,loadend
您可以将onload事件用作预先检查的readystate 4,然后继续检查XHR状态(200 - > 300 || 304我想象)