Sencha touch2:Ajax Post请求成功和失败函数没有被调用?

Posted

技术标签:

【中文标题】Sencha touch2:Ajax Post请求成功和失败函数没有被调用?【英文标题】:Sencha touch2: Ajax Post request success and failure function not getting called? 【发布时间】:2013-04-09 13:19:01 【问题描述】:

我是 sencha touch2 的新手,我有 Ajax Post Request 代理,并且能够获取 Json 数据。但是我的成功和失败函数没有被调用?知道我该怎么做吗? 这是我的模型供您参考:

Ext.define('TestApp.model.ModelList', 
    extend: 'Ext.data.Model',
    xtype:'modelList',
    config: 
        fields:['work'],

        proxy:
            type:'ajax',
            method: 'POST',

            url:'http://localhost:9090/apps/works',
            callbackKey: 'callback',
            actionMethods: 
                create : 'POST',
                read   : 'POST', // by default GET
                update : 'POST',
                destroy: 'POST'
            ,
            headers: 
                'Content-Type': 'application/xml',
                'Accept':'application/json'

            ,
            callback: function(options, success, response) 
                console.log('999999999'+response.responseText);// not getting called
            ,
            success: function(response) 
              console.log('success++++');// not getting called
            ,
            failure: function(response) 
                console.log('failure++++');// not getting called
            ,

            reader:
            
                type:'json'
            
        
    
);

【问题讨论】:

使用 Chrome 开发者工具。打开网络选项卡。重新加载您的页面或触发您的请求。查看网络流量。会发生什么? 服务器返回什么? 下面的答案有帮助吗? 【参考方案1】:

代理本身不定义回调。 执行的操作确实如此。因此,例如Model.load(1,...) 可以在配置参数中指定回调函数,如下所示:

MyApp.User.load(10, 
    scope: this,
    failure: function(record, operation) 
        //do something if the load failed
    ,
    success: function(record, operation) 
        //do something if the load succeeded
    ,
    callback: function(record, operation) 
        //do something whether the load succeeded or failed
    
);

更多信息在这里:http://docs.sencha.com/touch/2-1/#!/api/Ext.data.Model 或在这里:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Model-static-method-load

还要确保您需要 Ajax 代理而不是 JSONP 代理。在 Ajax 代理上,通常不需要指定主机和端口,因为它应该与应用程序主机相同。如果不是这样,那么您需要 JSONP 代理。

【讨论】:

你能帮我看看我在哪里可以写上面的代码吗?

以上是关于Sencha touch2:Ajax Post请求成功和失败函数没有被调用?的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 中的 POST 请求

Sencha touch2 配置问题.sencha 命令未找到

使用 sencha touch2 动态创建轮播

sencha touch2 中的下拉列表

如何在 Sencha Touch2 中显示数据视图?

sencha touch2.0如何在屏幕之间传递数据?