Jetons d'abord un coup d'œil aux cinq étapes des objets asynchrones
Ceci est demandé par courrier,
//1.00Créer un objet asynchrone
var xhr = new XMLHttpRequest();
//2.0
xhr.open("post", url,params, true);
//3.0 utilise l'attribut Formdata pour transmettre les paramètres
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//4.0 Définir la fonction de rappel
xhr.onreadystatechange = function () {
Si (xhr.readyState == 4 && xhr.status == 200) {
alerte(xhr.responseText);
}
}
//Paramètres de réussite 5.0
xhr.send(params);
Combinez la requête get pour créer un package d'objets asynchrone
obtenir
en demande
xhr.setRequestHeader("If-Modified-Since", "0"); consiste à vider le cache
Et poster une demande
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
C'est pour le mode de transmission
dans
Le type dans peut être obtenu de trois manières, notamment application/x-www-form-urlencoded
var ajaxHelp = {
CreatXHR : fonction () {
//创建异步对象
var xhr = nouveau XMLHttpRequest();
retourner xhr ;
},
//ajax的get请求
AjaxGet : fonction (url, callBack) {
this.AJaxCommon("get", url, null, callBack);
},
//ajax的post请求
AjaxPost : fonction (url, paramètres, callBack) {
this.AJaxCommon("post", url, params, callBack);
},
AJaxCommon : fonction (méthode, url, paramètres, callBack) {
//1.0
var xhr = this.CreatXHR();
//2.0
xhr.open(méthode, url, vrai);
//3.0
if (method == "get") {
xhr.setRequestHeader("If-Modified-Since", "0");
} autre {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
>
//4.0
xhr.onreadystatechange = fonction () {
if (xhr.readyState == 4 && xhr.status == 200) {
var datas = JSON.parse(xhr.responseText);
//执行回调函数
rappel(données);
>
>
//5.0
xhr.send(params);
>
};
ps : JQuery contient $.ajax et $.get / $.Post .们底层也是这样的写的呢。 JQuery