我返回的JsonString为{success:false},但是Ext还是去执行success的函数。代码如下:
Ext.Ajax.request({
url:projectPath+'warning/operateWarnList.action',
params:{digest: digest,timeStr: time},
asynchronous:false,
method:'post',
success:function(response){
Ext.MessageBox.alert('show','处理成功!');
},
failure : function(response){
Ext.MessageBox.alert('show','处理失败!');
}
});
Ext.Ajax.request({
url:projectPath+'warning/operateWarnList.action',
params:{digest: digest,timeStr: time},
asynchronous:false,
method:'post',
success:function(response){
Ext.MessageBox.alert('show','处理成功!');
},
failure : function(response){
Ext.MessageBox.alert('show','处理失败!');
}
});
所以你必须改成这样
success:function(response) {
//在这里判断response中的success是false还是 true。然后做不同的处理
}
Ext里的ajax提交数据和form提交数据返回的success意义是不同滴
form提交数据的success判断可以像你写的那样
ajax判断success,服务端必须返回一个字段用于标识该处理是否成功
failure : function(response){
Ext.MessageBox.alert('show','处理失败!');
}只是说明ajax请求失败返回 的http code不是200,可能是404 500 403 401 等 等 。才是failure
这样了肯定不执行success了
每次返回总是成功当然执行了.
只要写好服务器端代码就OK了.
url: url,
method: 'post',
callback: function(options, success, response) {
if (success) {
var json = Ext.decode(response.responseText);
if (json.Success) {
//成功
} else {
//失败
}
} else {
//连接失败
}
},
scope: this,
params: para
});