在MDN docs他们的onreadystatechange
回调示例中没有收到参数
var xhr = new XMLHttpRequest(),
method = "GET",
url = "https://developer.mozilla.org/";
xhr.open(method, url, true);
// no param!
xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// the response would be found on the xhr instance
console.log(xhr.responseText);
}
};
xhr.send();
但是,我看到elsewhere响应将在传递给回调的事件参数中找到
xmlHttpRequest.onreadystatechange = function (event) {
var xhr = event.target;
if (xhr.readyState === 4 && xhr.status === 200) {
document.getElementById("target").innerHTML = xhr.responseText
}
};
我遇到过一些父对象很重要的边缘情况。在某些情况下,onreadystatechange
回调参数没有responseText
属性,但xml实例没有。
问题:
标题是否与此差异有关?
是否存在从callback参数或xml实例访问responseText
属性的规范,无懈可击的方法?添加检查两个对象的逻辑会很容易,但我想知道是否需要在xmlhttpreq实例上设置一些选项。