使用带有简单回调的 vanilla javascript 中的 ajax
这是我们创建一个用 vanilla javascript 编写的简单 ajax 调用的函数(不是 es2015):
function ajax(url, callback) {
var xhr;
if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
else {
var versions = ["MSXML2.XmlHttp.5.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.2.0",
"Microsoft.XmlHttp"]
for(var i = 0, len = versions.length; i < len; i++) {
try {
xhr = new ActiveXObject(versions[i]);
break;
}
catch(e){}
} // end for
}
xhr.onreadystatechange = ensureReadiness;
function ensureReadiness() {
if(xhr.readyState < 4) {
return;
}
if(xhr.status !== 200) {
return;
}
// all is well
if(xhr.readyState === 4) {
callback(xhr);
}
}
xhr.open('GET', url, true);
xhr.send('');
}
它可以用作:
ajax('myFile.html', function(response) {
document.getElementById('container').innerHTML = response.responseText;
});
如果你想使用 Ecmascript 6(也称为 es2015),你可以使用 fetch 方法,它返回一个 promise:
fetch('myFile.json').then(function(res){
return res.json();
});
有关 es2015 承诺的更多信息,请点击下面的链接: Promises