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请求成功和失败函数没有被调用?的主要内容,如果未能解决你的问题,请参考以下文章