本人也是學習extjs中摸索,有不對的地方,請指正.
extjs用ajax傳送資料的方法有post(用普通的表單或用json格式),get(用params).
在回傳的時候用json(推薦方法) ,需要注意的是伺服器必須要返回json格式,並且必須要設定success的值,當然你不這樣也能,但是這種方式應該是官方提倡的方式.
這裡主要總結json資料服務器回傳的方法.
在api總指出回傳的格式{success;true,data:{clientName: "Fred. Olsen Lines", portOfLoading:"FXT",portOfDischarge: "OSL" } }}}
需要注意的是這裡的success和data是關鍵字,(姑且這麼叫吧)在data中是資料在用戶端通過
Ext.decode(response.responseText).clientName獲得.第一個回傳資料.這裡證明在用
success: function(response){}函數的時候,參數response是一個json字串,通過Ext.decode解析了data的資料集.
//成功時回叫,第一個參數為XMLHttpRequest對象,第二個參數傳入指定的options
所有,這裡前背景代碼應該這樣統一:
後台(asp):
response.write "{success:false,data:{msg:'密碼或使用者名稱不可為空!'}}"
response.write "{success:true,data:{msg:'登陸成功!'}}"
前台:
success: function(response,options){Ext.MessageBox.alert(' 提示',Ext.decode(response.responseText).msg);},
failure: function(response,options){Ext.MessageBox.alert('提示','Ext.decode(response.responseText).msg);},
還可以:
Ext.util.JSON.decode(response.responseText); 這個也是對json編碼的解析.
另外在網上還看到這樣代碼:
伺服器:
{ success:false, errors:{errstr: '使用者名稱或者密碼錯誤'} }
用戶端:
success : function(form, action) {//response,options
location.href = jmp.asp;//登陸成功後暫時用js做了跳轉
},
failure : function(form, action) {//response,options
Ext.Msg.alert('登陸失敗', action.result.errors.errstr);
},
並沒有使用知道的data關鍵字,其實這樣也可以.但是注意success這個關鍵字必須要使用.!!!!
這裡不是很清楚,我猜測,前面的例子是用第一個參數擷取,這裡是用第二個參數擷取.
給出Ext.Ajax.request方法
使用Ext.Ajax.request方法來進行的,該方法可以用來向伺服器端發送一個http請求,並可以在回呼函數中處理返回的結果。往遠程伺服器發送一個HTTP請求,發送Ajax調用的時候該方法的簽名如下:
Ext.Ajax.rquest( [Object options] ) : Number
伺服器的響應是非同步,因此需要在回呼函數中處理伺服器端返回的資料。回呼函數可以定義在request方法調用的參數options中。另外,在request方法中可以定義Ajax請求的一些其它屬性。參數options是一個對象,該對象包含了Ajax請求所需的各種參數及回調處理參數等。options中可以包含的各個屬性及含義如下所示:
url String 指定要請求的伺服器端url,預設值為Ajax對象中配置的URL參數值。
params Object/String/Function 指定要傳遞的參數,可以是一個包含參數名稱及值的對象,也可以是name=xx&birthday=1978-1-1類似的url編碼字串,或者是一個能返回上述兩種內容的函數。
method String 指定發送Ajax請求使用的method,可以是GET或POST方式。預設情況下,如果請求中沒有傳遞任何參數則使用GET,否則使用POST。
callback Function 指定Ajax請求的回呼函數,該函數不管是調用成功或失敗,都會執行。傳遞給回呼函數的參數有三個,第一個options表示執行request方法時的參數,第二個success表示請求是否成功,第三個參數response表示用來執行Ajax請求的XMLHttpRequest 對象。關於XMLHttpRequest可以通過http://www.w3.org/TR/XMLHttpRequest/查詢詳細的資訊。
success Function 指定當Ajax請求執行成功後執行的回呼函數,傳遞給回呼函數兩個參數,第一個參數response表示執行Ajax請求的XMLHttpRequet對象,第二個參數表示執行request方法時的options對象。
failure Function 指定當請求出現錯誤時執行的回呼函數,傳遞給回呼函數兩個參數,第一個參數response表示執行Ajax請求的XMLHttpRequet對象,第二個參數表示執行request方法時的options對象。
scope Object 指定回呼函數的範圍,預設為瀏覽器window。
form Object/String 指定要提交的表單id或表單資料對象。
isUpload Boolean 指定要提交的表單是否是檔案上傳表單,預設情況下會自動檢查。
headers Object 指定請求的Header資訊。
xmlData Object 指定用於發送給伺服器的xml文檔,如果指定了該屬性則其它地方設定的參數將無效。
jsonData Object/String 指定需要發送給伺服器端的JSON資料。如果指定了該屬性則其它的地方設定的要發送的參數值將無效。
disableCaching Boolean 是否禁止cache。