如何在JS中使用AJAX技術
Ajax是一個特別特別重要的技術,獲取數據,局部刷新,都得用它!

Ajax是什么呢:Asynchronous javaScript And XML(異步的 javaScript 和 XML)。
注意啦,Ajax不是某種編程語言,只是一種在無需重新加載整個網頁的情況下能夠更新部分網頁的技術。
那么如何實現Ajax技術?
1、運用HTML和CSS來實現頁面,表達信息;
2、運用XMLHttpRequest和web服務器進行數據的異步交換;
3、運用JavaScript操作DOM,實現動態局部刷新。
在學習怎樣使用Ajax技術之前,得先了解下http請求:
什么是HTTP?http是計算機通過網絡進行通信的規則。
HTTP是一種無狀態的協議(無狀態協議指的是瀏覽器與服務器不建立持久的連接)。
一個完整的http請求過程,通常有下面7個步驟:
1、建立TCP連接
2、web瀏覽器向web服務器發送請求命令
3、web瀏覽器發送請求頭信息
4、web服務器應答
5、web服務器發送應答頭信息
6、web服務器向瀏覽器發送數據
7、web服務器關閉TCP連接
一個HTTP請求一般由四部分組成:
1、HTTP請求的方法或動作,比如是GET還是POST請求
2、正在請求的URL,總得知道請求的地址是什么吧
3、請求頭,包含一些客戶端環境信息,身份驗證信息等
4、請求體,也就是請求正文,請求正文中可以包含客戶提交的查詢字符串信息,表單信息等等
我們以百度首頁的HTTP請求當實例來看看:
看上圖中,我標注出來的,就是一般情況下,我們做請求需要注意的地方。
請求地址,很好理解,就是我們發起請求的url。
請求方式有兩種:
GET:一般用于信息獲取
使用URL傳遞參數
對所發送的信息數量也有限制,一般在2000個字符
POST:一般用于修改服務器上的資源
對所發送的信息數量無限制
HTTP狀態碼一般由3位數字構成,其中首位數字定義了狀態碼的類型:
1XX 信息類,表示收到web瀏覽器請求,正在進一步處理中
2XX 成功,表示用戶請求被正確接收,理解和處理,例如200 OK
3XX 重定向,表示請求沒有成功,客戶必須采取進一步的動作
4XX 客戶端錯誤,表示客戶端提交的請求有錯誤,例如404 NOT Found,意味著請求中所引用的文檔不存在
5XX 服務器錯誤,表示服務器不能完成對請求的處理,例如500
再就是請求參數,這里需要注意,參數名稱,格式等不要弄錯了。
以上是請求圖解,下面我們看下響應是啥樣的:
一個HTTP響應一般由三部分組成
1、一個數字和文字組成的狀態碼,用來顯示請求是成功還是失敗
2、響應頭,響應頭和請求頭一樣包含許多有用的信息,例如服務器類型,日期時間,內容類型和長度等
3、響應體,也就是響應正文
一個典型的響應內容如下:
截圖內容,就是完成請求后,接口返回的數據內容也就是響應正文啦。
下面我們看一下,創建一條Ajax的請求的具體流程是什么樣的呢?
第一步:創建XMLHttpRequest對象:
var request = new XMLHttpRequest();
如何兼容IE5、IE6甚至更早的版本?
第二步:XMLHttpRequest發送請求
open(method,url,async)
method:get/post 不區分大小寫
url:請求地址
async:同步或者異步,true為異步處理,false為同步請求,一般默認為異步請求
send(string)
一般get不填參數,post要填參數
第三步:XMLHttpRequest取得響應
獲取響應值:
responseText:獲得字符串形式的響應數據
responseXML:獲得XML形式的響應數據
status和statusText:以數字和文本形式返回HTTP狀態碼
getAllResponseHeader():獲取所有的響應報頭
getResponseHeader():查詢響應中的某個字段的值
在響應返回成功時得到通知:
readyState屬性:
0:請求未初始化,open還沒有調用
1:服務器連接已建立,open已經調用了
2:請求已接收,也就是接收到頭信息了
3:請求處理中,也就是接收到響應主體了
4:請求已完成,且響應已就緒,也就是響應完成了
如果我們想知道服務器響應有沒有成功,就需要監聽以上的屬性值變化
監聽方法:
具體的請求過程代碼示例如下(一個搜索請求,一個保存請求):
HTTP Ajax
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。