Mari kita lihat dahulu lima langkah objek tak segerak
Ini diminta melalui pos,
//1.00Buat objek tak segerak
var xhr = XMLHttpRequest();
//2.0
xhr.open("post", url,params, true);
//3.0 menggunakan atribut Formdata untuk menghantar parameter
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//4.0 Tetapkan fungsi panggil balik
xhr.onreadystatechange = fungsi () {
Jika (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
}
//5.0 Lulus parameter
xhr.send(params);
Gabungkan permintaan get untuk mencipta pakej objek tak segerak
dapatkan
dalam permintaan
xhr.setRequestHeader("If-Modified-Sejak", "0"); adalah untuk mengosongkan cache
Dan permintaan pos
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Ia untuk kaedah penghantaran
in
Jenis dalam boleh didapati dalam tiga cara, termasuk application/x-www-form-urlencoded
var ajaxHelp = {
CreatXHR: fungsi () {
//创建异步对象
var xhr = XMLHttpRequest();
pulangkan xhr;
},
//ajax的get请求
AjaxGet: fungsi (url, callBack) {
this.AJaxCommon("get", url, null, callBack);
},
//ajax的post请求
AjaxPost: fungsi (url, params, callBack) {
this.AJaxCommon("post", url, params, callBack);
},
AJaxCommon: fungsi (kaedah, url, params, callBack) {
//1.0
var xhr = this.CreatXHR();
//2.0
xhr.open(kaedah, url, benar);
//3.0
jika (kaedah == "dapatkan") {
xhr.setRequestHeader("Jika-Diubah-Sejak", "0");
} lain {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
//4.0
xhr.onreadystatechange = fungsi () {
if (xhr.readyState == 4 && xhr.status == 200) {
var datas = JSON.parse(xhr.responseText);
//执行回调函数
callBack(data);
}
}
//5.0
xhr.send(params);
}
};
ps:在JQuery里面是有$.ajax 和$.get / $.Post 等异步请求的方法的。以前的封装就不用了。不用了。底层也是这样的写的呢。 JQuery就是为了解决各个浏览器的兼容性问题而已
以上就是本人对于jQuery异步对象(XMLHttpRequest)的理解,如有遗漏,麻烦联系我,补>兩