2012-05-12 37 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请求本身是成功的。

但是如果你使用的网格和编辑器 - 我建议看看这样做的不同的方法 - 检查文档远程存储,读/写器等