2012-05-12 40 views
0

我是新的網絡編程,所以請原諒我天真的問題,我試圖在網上搜索,但無法找到我的基本問題的答案。extjs ajax響應與蟒蛇瓶

我在服務器端使用extjs(用於widgets和ajax)和python(使用瓶子)。

這是我的要求。

我有隻有一列(可編輯)的extjs EditorGrid。在索引路線(瓶子路線)我返回json字典填充在這個網格和顯示,所有這一切,直到這一點,現在我想更新此列的值,並保存在服務器端的更新值。

所以我在我的python腳本中添加了另一條路徑,並且將ajax_reply作爲url添加到了javascript(代碼如下)上的ajax請求中。

現在我的問題是,我如何發送一個響應客戶端,比如說我想發送一個失敗的客戶端(即更新是不成功的服務器上,我想發送ajax響應更新失敗。從我ajax_reply路線發送隨機的東西,但總是成功被稱爲客戶端。

我很困惑如何發送從ajax_repose功能的JSON響應,然後在我的javascript成敗功能再次解析它採取相應的行動。

任何幫助很多appriciated

@bottle.route('/ajax_reply', method='POST') 
def update_column(): 
    return { 'success' : False } 


var grid = new Ext.grid.EditorGridPanel({ 
       tbar: [{ text : 'Remove' }, {text : 'Add'}], 
       ds: ds, 
       frame:true, 
       listeners: { 
        afteredit : function(e){ 
         Ext.Ajax.request({ 
         url : '/ajax_reply', 
         params : { 
           action: 'update', 
           id : e.record.id, 
           field: e.field, 
           value : e.value 
         }, 
         success : function(resp, opt){ 
          e.record.commit(); 
          Ext.Msg.alert('SUCCESS', 'success...'); 
         }, 
         failure: function(resp, opt){ 
          Ext.Msg.alert('ERROR', 'error...'); 
          e.record.reject(); 
         } 
        }); 
       } 
       }, 

回答

1

如果您使用的是Ext.Ajax.request,則需要自己解析響應。即使服務器無法更新記錄,而是產生某種適當的響應

{ success: false, msg: 'Failed to save record' } 
  • 這仍然會得到你的success功能。因爲Ajax請求本身是成功的。

但是如果你使用的網格和編輯器 - 我建議看看這樣做的不同的方法 - 檢查文檔遠程存儲,讀/寫器等