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

时间:2013-04-09 13:19:01

标签: ajax extjs extjs4 sencha-touch sencha-touch-2

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

1 个答案:

答案 0 :(得分:0)

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

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代理。