1. 程式人生 > 其它 >(3)jQuery——AJAX中GET請求的封裝步驟

(3)jQuery——AJAX中GET請求的封裝步驟

因為我們不可能每使用一次ajax就寫這麼長的程式碼,所以我們需要對它進行封裝,再次使用呼叫即可。

在之前的專案中新增一個js檔案(myAjax.js)
在這個檔案裡我們新增一個方法

 

 

首先我們先寫出傳送一個請求的完整過程。

 

 


然後,來看看哪些是不確定的,我們就使用引數把它傳遞進來。

我們發現url是不確定的。

 

 

然後我們又發現,對於失敗和成功的處理方式可能也是不一樣的。
所以我們新增引數,進行修改。

 

 

測試
建立一個HTML頁面

 

 


這裡訪問的Handler.ashx的內容

 

 

一般處理程式建立會自動成一些內容,我這裡只修改了紅框標出來的內容!

執行程式(把剛建立的html頁面設為起始頁)

 

 

修改url為一個錯誤值

 

 

現在我們來完善我們封裝過的js檔案
首先解決一下ie中的兩個問題(這兩個問題在前面都有寫過,這裡就不再贅述,直接新增程式碼了)

 

 

我們知道,使用get請求是將我們傳遞的資訊拼接在地址後面,我們怎麼來實現呢。
我們首先新增一個物件(紅框)來傳遞資料,因為在myAjax.js的ajax()中需要新增一個引數。

 

 

新增引數+格式處理(myAjax.js):

 

 

實現objTostr這個方法:

 

 

然後我們發現:

 

 

這裡也是一個字串
所以我們可以放在objTostr()這個方法裡一起處理

 

 

修改相關程式碼:

 

 

現在我們來測試一下吧
注意之前傳入的值:

 

 

編輯Handler.ashx

 

 

執行程式:

 

 

成功拿到資料。
細節的處理
當我們用ajax傳送一個請求,我們需要等待伺服器的響應,但是這個時間是不確定的,所以我們需要再新增一個引數來對時間進行限制

 

 

在這裡我們設定了超時時間,所以在myAjax.js裡面需要新增一個引數來傳遞這個時間,當然我們還需要一個值來體現時間的變化——timer 的作用就在於此

 

 

判斷是否傳入了時間,如果傳入了時間就開啟定時器

 

 

這裡還需要處理一個細節

 

 

因為url中是不允許出現中文字元的,所以我們還需要進行一個處理。
比如:開啟百度在搜尋框隨便輸入中文字元

 

 

然後複製位址列的地址:你會發現wd後面的內容是這樣的。

 

 

這就說明做了某種處理。

 

 

這樣就完成啦。

  • myAjax.js

 

 

 

 

 

 

 

html頁面

 

 

 

 

————————————————
版權宣告:本文為CSDN博主「純純要加油」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_40422692/article/details/107863254