Extjs数据交付方式-单独Ajax提交

Extjs数据提交方式--单独Ajax提交1、一般分为“form的submit提交”、“单独Ajax提交”?formname.form.submit({ur

Extjs数据提交方式--单独Ajax提交

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});elseExt.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});}});}

?

?

?