我是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'
}
}
}
});
答案 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代理。