readystatechange
是XMLHttpRequest
个对象的标准事件,因此应该能够让函数使用
r.onreadystatechange = function() { ... };
以及
r.addEventListener('readystatechange', function() { ... }, false);
然而,后一种方法似乎只适用于Firefox和Chrome,但不适用于Opera,它不会引发错误但只是没有效果。为什么会这样,这是否是正确的行为?
答案 0 :(得分:11)
MDN docs on XMLHttpRequest没有具体提及提出readystatechange
事件,但W3C docs确实需要它。
结合一般规则“onxxx
是事件xxx
的事件处理程序”意味着Opera行为不正确。
答案 1 :(得分:1)
这对我有用。
xhr.addEventListener('readystatechange', evt => {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
return this.responseText;
}
}, false);