(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