日期:2014-05-16 浏览次数:20586 次
1、一般分为“form的submit提交”、“单独Ajax提交”
?
formname.form.submit({
url : '',
method : 'POST',
waitMsg:'正在保存数据,请等待...',
success : function(form, action) {
},
failure : function(form, action) {
}
});
Ext.Ajax.request({
url : '',
method : 'POST',
success : function(result, request) {
},
failure : function(form, action) {
}
});
?
2、相关问题及解决方法
(1)问题点:?单独Ajax提交方式,只要能够提交到后台不管数据能否正确执行就回调success函数,如果网络有故障,或者页面有错误数据到不了后台,就执行failure函数。而我们一般要求是:数据处理成功后显示成功信息,失败后显示失败信息。
?
如:后台返回结果:
{success:true}
{success:false,errors:connect}
?
?
(2)解决:在js页面中的success函数中取得返回值,我们对返回值进行判断,如果success是true我门就打印成功信息,如果success是false我们就打印失败的提示。
?
(3)从后台取得返回值:var responseArray = Ext.util.JSON.decode(response.responseText);
?
说明:Ext.util.JSON.decode()功能是将json字符串转成对象。相反的还有encode是将对象转成json字符串。
?
(4)代码示例
handler: function() {
Ext.Msg.wait('处理中,请稍后...', '提示'); //进度条等待
Ext.Ajax.request({
async : false,//同步
url: 'upload/test.do',
success:function(response, options){
//隐藏进度条
Ext.Msg.hide();
//将json数据字符串转变为对象
var responseArray = Ext.util.JSON.decode(response.responseText);
//成功
if(responseArray.success==true){
Ext.example.msg('成功', ' 上传成功 ');
}else{
//失败的几种返回情况
if(responseArray.errors == 'connect')
Ext.MessageBox.show({title: '失败',msg: '连接中心服务器失败,请检查网络配置!',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR});
else if(responseArray.errors == 'server')
Ext.MessageBox.show({title: '失败',msg: '服务器错误,上传失败!',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR});
else
Ext.MessageBox.show({title: '失败',msg: '上传失败',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR});
}
},
failure:function(response,options){
Ext.Msg.hide();
Ext.MessageBox.show({title: '失败',msg: '上传失败',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR});
}
});
}
?
?
?