天天看点

Ext.Ajax.request以及Ext.form.action.Submit使用总结(Ext版本4.2.0)Ext.Ajax.requestExt.form.action.Submit

Ext.Ajax.request和Ext.form.action.Submit都是用success,failure两个方法来处理返回值的。

但是,他们之间有很大的差别。通过在项目中的研究,暂时得出了以下结论,如有不同看法请指出。

Ext.Ajax.request

首先是Ext.Ajax.request,他有两个处理函数success和failure,包含response, opts两个参数。

其中最主要的为response,里面有以下属性

Ext.Ajax.request以及Ext.form.action.Submit使用总结(Ext版本4.2.0)Ext.Ajax.requestExt.form.action.Submit

其中最主要的

  • status:http的状态
  • responseText:从server返回的json数据

作为Ext.Ajax.request的success和failure,他们之间的区别为

  • success:http status为200(正常结束)的处理
  • failure:http status不为200(非正常结束)的处理,包括500等

其中最容易搞混的就是当返回json中有{success: true}的时候,这里和Ext.form.action.Submit完全不同,

不以返回数据中的success: true来作为判断条件。

Ext.form.action.Submit

其次是Ext.form.action.Submit,他也有两个处理函数success和failure,包含form和action两个参数。

但是就是这两个处理函数,感觉Extjs给挖了一个巨大的坑。

在整个Form里面包含filefield和不包含的情况下,产生了完全是2种不同的结果。

由于想在Extjs端做一个完整的返回结果处理,以及异常的全局处理,

特别是在包含filefield的情况下的500处理,花费了特别多的时间。

首先是在不包含filefield的情况下

这个时候的处理比较简单:

  • 在正常返回后台数据的情况下

返回的json里面要包含{success:true}或{success:false}

这样Extjs就会根据success是等于true还是false来选择执行处理函数success还是failure

  • 在出现500等的异常的情况下

正常返回到failure函数里面

并且可以在回调函数参数action.response里面找到status以及其他的信息,如request

其次是在包含filefield的情况下

  • 在正常返回后台数据的情况下

转载于:https://www.cnblogs.com/zuoyetianqi/archive/2013/05/09/3070269.html