使用帶有簡單回撥的 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