0

我是 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'
            }
        }
    }
});
4

1 回答 1

0

代理本身没有定义回调。执行的操作确实如此。因此,例如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 代理。

于 2013-04-11T04:38:05.393 回答