js之ajax的封裝

2022-07-09 09:51:10 字數 2131 閱讀 5485

上節講了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...