上節講了ajax的作用好處即流程為的就是去封裝ajax,那......那該怎麼封裝ajax呢???????
封裝方法,傳參是個很大的問題!在這裡,我們應該傳幾個引數呢?
首先我們肯定要傳乙個請求方式get或post(method),然而json資料也是必不可少的,其次就是需要傳入乙個url路徑了,在者就需要乙個成功的**和乙個失敗的**了;
如上所示,引數分為(method, json, url, success, error);
引數知道了,ajax流程也有了,那我們就開始封裝吧!
首先建立乙個ajax物件,然後再定義乙個空的字串。因為傳入的method包含兩種請求方式,所以要判斷是get還是post。然後再將json資料進行遍歷,且將所有的雜湊值進行拼接;再擷取前面的&符,將url進行拼接,緊接著就是open開啟和send提交了。注:get和post請求方式的區別還在於post要設定請求頭而get不用。
**如下:
function ajax(method,url,json,success,error)//擷取前面的&符
str = str.substr(1
);
//url進行拼接
url = url+"
?"+str;
xml.open(
"get
",url,true
); xml.send();
}else
//擷取前面的&符
str = str.substr(1
); xml.open(
"post
",url,true
);
//設定請求頭
xml.setrequestheader("
content-type
",""
); xml.send(str);
}}
還記得ajax流程最後一步是啥麼?沒錯,就是監聽伺服器的狀態。但是該怎麼監聽呢?首先就是判斷建立連線的狀態是否完成(4)並且伺服器是否請求成功(200);然後在判斷後台資料給的自否是字串,如果不是我們則將它轉換成字串(json.parse( ));在其之後如果第乙個判斷為true的話如果成功的**存在的話則執行成功的**,如果為false的話有失敗的**則執行失敗的**。**如下:
//監聽伺服器狀態
xml.onreadystatechange =function()
//成功的**
success&&success(data);
}else
}
看吧,ajax就這樣封裝好啦,快去試試吧。略略略.......
function ajax(method,url,json,success,error)str = str.substr(1
); url = url+"
?"+str;
xml.open(
"get
",url,true
); xml.send();
}else
str = str.substr(1
); xml.open(
"post
",url,true
); xml.setrequestheader(
"content-type
",""
); xml.send(str);
}xml.onreadystatechange =function()
success&&success(data);
}else
}}
不用感謝我,因為我是八寶山喊麥王,嘻嘻。
Js之AJAX簡易封裝
提供對原生ajax的簡易封裝 封裝ajax庫 author wenqian email 843462167 qq.com function 提供path query選項 getparamswhere query 傳送請求 url 請求位址 method 請求方式 params 引數 headers ...
原生JS封裝AJAX
今天我們來說說利用原生js封裝ajax.jquery框架的ajax方法確實很好用,但有時候我們寫的頁面需要引入多個js外掛程式,不一定哪個外掛程式就會和jquery發生衝突,導致jquery用不了了.或者頁面比較簡單,不需要加重瀏覽器的負擔,這時我們自己封裝乙個ajax就是乙個很好的辦法.將資料轉換...
原生js實現Ajax的封裝
1.封裝函式function ajax options options.type options.type get touppercase options.datatype options.datatype json options.async options.async true var para...