伺服器響應
post
自己封裝乙個ajax
建立非同步物件
設定請求方式和請求位址
傳送請求
監聽狀態化
處理返回結果
lang
="en"
>
>
charset
="utf-8"
>
>
titletitle
>
>
window.
onload
=function()
}}script
>
head
>
>
class
="btn"
>
提交button
>
body
>
html
>
實際操作中第4步會被多次執行(可能觸發2-3次),因為xmlhttprequest 有五個狀態,從0->4變化,每變化一次事件被觸發一次
請求未初始化為了避免多次觸發,我們要判斷伺服器是否處於完成響應狀態伺服器連線已建立
請求已接收
請求處理中
請求已完成,且響應已就
}實際操作中我們發現,當請求失敗時,依舊會進入狀態4
我們要通過伺服器的狀態碼來確定請求是否成功
狀態碼被儲存在物件的status變數中
lang
="en"
>
>
charset
="utf-8"
>
>
titletitle
>
>
window.
onload
=function()
else}}
}}script
>
head
>
>
class
="btn"
>
提交button
>
body
>
html
>
http狀態碼非常多,不需要全部記住,頭部數字表示了其型別
1xx:通知類
2xx:成功(304特殊也為成功)
3xx:重定向
4xx:客戶端錯誤
5xx:伺服器端錯誤
常見狀態碼
200(「ok」)如需獲得來自伺服器的響應,一切正常。實體主體中的文件(若存在的話)是某資源的表示。
301(「moved permanently」)
當客戶端觸發的動作引起了資源uri的變化時傳送此響應**。另外,當客戶端向乙個資源的舊uri傳送請求時,也傳送此響應**。
304(" not modified")
如果客戶端傳送了乙個帶條件的 get 請求且該請求已被允許,而文件的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則伺服器應當返回這個狀態碼。304響應禁止包含訊息體,因此始終以訊息頭後的第乙個空行結尾。
400(「bad request」)
客戶端方面的問題。實體主題中的文件(若存在的話)是乙個錯誤訊息。希望客戶端能夠理解此錯誤訊息,並改正問題。
404(「not found」) 和410(「gone」)
當客戶端所請求的uri不對應於任何資源時,傳送此響應**。404用於伺服器端不知道客戶端要請求哪個資源的情況;410用於伺服器端知道客戶端所請求的資源曾經存在,但現在已經不存在了的情況。
409(「conflict」)
當客戶端試圖執行乙個」會導致乙個或多個資源處於不一致狀態「的操作時,傳送此響應**。
500(「internal server error」)
服務期方面的問題。實體主體中的文件(如果存在的話)是乙個錯誤訊息。該錯誤訊息通常無濟於事,因為客戶端無法修復伺服器方面的問題。
請使用 xmlhttprequest 物件的
responsetext (獲得字串形式的響應資料。)
或respon***ml 屬性(獲得 xml 形式的響應資料。)。
ie瀏覽器存在乙個特性: 認為同乙個url只有乙個結果(至ie11仍然出現),
這導致了如果返回的資料發生過變化也只會返回第一次的結果(疑似後續請求的返回會直接呼叫快取)
解決方法:禁止快取或設定隨機引數
方法一:禁止快取
//在提交引數中加入時間,因為時間一直在變,伺服器可能並不會處理這個引數
//但每次url都不一樣了
xhr.
open
("get"
,url+
"?t="
++math.
random()
,true);
//用隨機數也可以如果需要像 html 表單那樣 post 資料,請使用 setrequestheader() 來新增 http 頭。然後在 send() 方法中規定您希望傳送的資料:
相比get方法post多出一條宣告
資訊不再放置於url而由send傳送
function
ajax
(type,url,obj,timeout,success,error)
else
//4.監聽狀態變化
Ajax的get post請求方式封裝好的js
method 請求方式,預設是get url 位址 data 要傳送的資料 function ajax catch error 判斷如果資料存在 if data if method get data 設定請求的位址 提交方式 非同步傳輸 xhr.open method,url,true if met...
Ajax的get post請求伺服器響應
ajax的get post方式http請求 1.伺服器端響應ajax的同步請求,新增乙個類繼承ihttphandler介面 region ihttphandler 成員 獲取get請求方式提交的cardid引數 string id context.request cardid 設定客戶端不快取,每次...
android 基礎 網路互動 get post
android應用經常會和伺服器端互動,這就需要手機客戶端傳送網路請求,下面介紹常用的兩種網路請求方式post,get。首先要區別post和get請求 1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字...