extjs ajax方式前後台資料傳送(json格式)

來源:互聯網
上載者:User

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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.