Ajax面試題 手寫ajax請求的五個步驟

2021-09-29 06:45:44 字數 872 閱讀 2150

建立 xmlhttprequest 物件; 設定請求行;設定請求頭(針對 post 請求);設定請求體;接收響應資料

;// 檢查瀏覽器是否支援 xmlhttprequest 物件

// 設定請求行,向伺服器傳送請求;用於說明xmlhttprequest物件要從**獲取資料.通常可以是**中的資料,也可以是本地中其他檔案中的資料。

// open(method,url,async);規定請求的型別、url 以及是否非同步處理請求。

// method:請求的型別;get 或 post;

// url:檔案在伺服器上的位置;

// async:true(非同步)或 false(同步)

xhr.

open

('get'

,'',true);

// post 請求需要設定請求頭

// 設定請求體;

// send(string); 將請求傳送到伺服器。string:僅用於 post 請求

xhr.

send

(null);

// get請求引數可不填或置空

/* 設定響應http請求狀態變化的函式 */

// onreadystatechange 儲存函式(或函式名),每當 readystate 屬性改變時,就會呼叫該函式。

xhr.

onreadystatechange

=function()

前端經典面試題 Ajax篇

onreadystatechange事件放在open 前,確保跨瀏覽器相容性 xhr.onreadystatechange function else 啟動乙個請求以備傳送 xhr.open get post example.php true 設定請求頭 xhr.setrequestheader 傳...

手寫promise封裝ajax

其實,axios本身就是基於promise進行封裝的,我們之所以進行二次封裝,主要是為了能夠對錯誤資訊進行乙個集中的處理,根據不同的錯誤資訊,需要給使用者不同的提示,以便於給使用者乙個良好的操作體驗。封裝方法有很多種,基於class類的,基於建構函式的,也可以直接封裝乙個函式。具體按照個人習慣,最主...

ajax請求掛起 Ajax請求內部迴圈掛起瀏覽器

我想從擁有大量資料的伺服器得到乙個結果。因此,伺服器在多個頁面中傳送資料。所以我想讓所有這些在資料表中顯示出來。所以我在迴圈內部使用ajax請求,因為我想從許多頁面獲取資訊。我為page變數新增 1,這樣迴圈將獲取所有頁面的所有結果,直到響應的no of elements為0。但是問題是瀏覽器在執行...