Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用python瓶子的extjs ajax响应_Javascript_Python_Ajax_Extjs_Bottle - Fatal编程技术网

Javascript 使用python瓶子的extjs ajax响应

Javascript 使用python瓶子的extjs ajax响应,javascript,python,ajax,extjs,bottle,Javascript,Python,Ajax,Extjs,Bottle,我是网络编程新手,所以请原谅我的天真问题,我尝试在网上搜索,但找不到我基本问题的答案 我在服务器端使用extjs(用于小部件和ajax)和python(使用瓶子) 这是我的要求 我有extjs EditorGrid,它只有一列(可编辑)。在索引路由(瓶路由)上,我返回在这个网格中填充并显示的json字典,到目前为止一切正常,现在我想更新这个列的值,并在服务器端保存更新后的值 因此,我在python脚本中添加了另一个路由,ajax作为url在javascript上回复我的ajax请求(代码如下)

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

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

这是我的要求

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

因此,我在python脚本中添加了另一个路由,ajax作为url在javascript上回复我的ajax请求(代码如下)

现在我的问题是,如何向客户端发送响应,例如,我想向客户端发送一个失败消息(即,服务器上的更新未成功,我想发送更新失败的ajax响应。我尝试从我的ajax_回复路径发送随机消息,但客户端总是调用成功消息)

我不知道如何从ajax_resose函数发送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();
                        }
                  });
                }
                },

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

{ success: false, msg: 'Failed to save record' }
  • 这仍然会到达
    success
    函数,因为Ajax请求本身是成功的
但是,如果您使用的是网格和编辑器,我建议您查看不同的方法,检查远程存储、读写器等的文档