原生js處理ajax請求
//Ajax文件地址窗声,文件讀取成功行冰,文件讀取失敗
functionajax(url, fnSuc, fnFai){
letoAjax =newXMLHttpRequest()
oAjax.open('POST', url,true)
?? ?oAjax.send()
oAjax.onreadystatechange =function(){
//讀取完成
if(oAjax.readyState ==4) {
//成功
if(oAjax.status ==200) {
?? ??? ??? ??? ?fnSuc(oAjax.responseText)
}else{
//失敗處理
if(fnFai) {
?? ??? ??? ??? ??? ?fnFai(oAjax.status)
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ?}
}
上述代碼是原生js完成ajax請求原理奸晴。
xhr.readyState有5個狀態(tài)值:
?- (未初始化)還沒有調用send()方法;
?- (載入)已調用send()方法臼朗,正在發(fā)送請求奇适;
?- (載入完成)send()方法執(zhí)行完成横缔,已經(jīng)接收到全部相應內容蔫磨;
?- (交互)正在解析響應內容纳寂;
?- (完成)響應內容解析完成主穗,可以在客戶端調用。
xhr.status有4個狀態(tài)值:
?- 表示成功處理請求毙芜。如200忽媒;?
- 需要重定向,瀏覽器直接跳轉腋粥;
?- 客戶端請求錯誤晦雨,如404;
?- 服務端錯誤隘冲。
以上闹瞧,原生js ajax請求的具體內容。