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

來源:互聯網
上載者:User

本人也是學習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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.