【问题标题】:extjs ajax response with python bottle带有python瓶的extjs ajax响应
【发布时间】:2012-05-12 21:55:44
【问题描述】:

我是网络编程新手,所以请原谅我的幼稚问题,我尝试在网络上搜索但找不到我基本问题的答案。

我在服务器端使用 extjs(用于小部件和 ajax)和 python(使用瓶子)。

这是我的要求。

我有 extjs EditorGrid,它只有一列(可编辑)。在索引路由(瓶子路由)上,我返回填充在此网格中并显示的 json 字典,到目前为止一切正常,现在我想更新此列的值并将更新后的值保存在服务器端。

所以我在我的 python 脚本上添加了另一条路由,并将 ajax_reply 作为我在 javascript 上的 ajax 请求的 URL(代码如下)。

现在我的问题是我如何向客户端发送响应,例如我想向客户端发送失败消息(即更新在服务器上不成功,我想发送更新失败的 ajax 响应。我尝试发送我的 ajax_reply 路由中的随机内容,但总是在客户端调用成功。

我很困惑如何从 ajax_repose 函数发送一个 json 响应,然后在我的 javascript 成功或失败函数中再次解析它以采取相应的行动。

非常感谢任何帮助

@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();
                        }
                  });
                }
                },

【问题讨论】:

    标签: javascript python ajax extjs bottle


    【解决方案1】:

    如果您使用Ext.Ajax.request,您需要自己解析响应。即使服务器无法更新记录但产生了某种正确的响应

    { success: false, msg: 'Failed to save record' }
    
    • 这仍然会到达您的success 函数。因为 Ajax 请求本身是成功的。

    但是,如果您使用网格和编辑器 - 我建议您查看不同的方法 - 检查远程存储、读取器/写入器等的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 2020-09-18
      • 2017-06-25
      • 2012-11-27
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      相关资源
      最近更新 更多