Ext.Ajax.request和formPanel.getForm().submit两种提交方法的异同

简介:

Ext.Ajax.requestformPanel.getForm().submit()两种提交方法的异同:

1、  相同点:

a) 都是使用异步提交的方式;

b) 默认都是使用POST方式来提交数据;

 

2、  不同点:

a) Request方法不可以使用waitMsg属性来设置在等待响应过程中显示的信息,而submit方法提交时这个设置是可用的(可以看到效果,而前面说的不可用是指设置了看不到效果);

b) Request方法必须将要提交的参数手动组织好然后作为名为params的参数的值才能提交到服务器,而submit方法会将表 单内所 input元素组织好提交;

c)  Request方法提交时,回调函数中会传入两个参数(response,option),前者是请求的响应对象,服务器对于请求的响应信息可以通过它的responseText属性得到(也就是response.reponseText就可以得到服务器返回的字符串),第二个参数是提交的参数对象,一般不需要用到,如果要读取返回的响应信息,要先用Ext.decode方法将其resonseText属性值转换成json对 象才可以读取;如服务器端返回的是一个json格式的字符串:{success:true,msg:'sample'},则客户端要读取这个信息,可以这 样:var returnResult = Ext.decode(response.responseText); alert(returnResult.msg);submit的情况下回调函数参数是(form,action),如果想读取响应信息,只需要访问action对象的result属性就可以了,像上述同样的返回信息,读取的示例:alert(action.result.msg);不过有一点要注意的是,当网络数据传输失败或信息丢失的情况下,action中可能没能取到服务器返回的消息,也就是说,result不一定会存在msg属性,如果不经判断就访问,有可能会引发异常;

d) Request方法提交后,无论返回的json结果中success属性是否为true,回调函数都会到success:function()里面执行,所以 在这 种情况下,必须在success方法体里再到result.success进行判断以得到真正的执行结果,所以,只有在出现网络错误,连不到服务器或找到响应页面(404)时,failure回调方法才会被执行;而Submit方法在返回的结果中,如果successtrue的,就会自动执 successfunction,如果是false,则会执行failure:function了,所以没有必要再在里面判断successtruefalse,另, request时一样,当出现网络错误或其它未知错误时,failurefunction也会被执行;

备注:造成这种结果的原因不难理解,因为在上面第三点提到,request请求的情况下返回的结果是以字符串的形式获取的,也就是 ext并未到其进行解析,所以它也识别不了里面返回的结果是成功还是失败,只是把一个字符串带回来了,而submit方法提交时,返回 action.result对象已经将响应信息解析了,它能读取其中的success属性的值,所以能够根据不同的success属性来执行相应的回调方法)



本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/885738,如需转载请自行联系原作者

相关文章
|
14天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
16 0
|
6月前
|
JSON 前端开发 JavaScript
JavaScript学习 -- ajax方法的POST请求
JavaScript学习 -- ajax方法的POST请求
37 0
|
1月前
|
前端开发
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
|
1月前
|
移动开发 前端开发 安全
Ajax跨域的所有方法(最详细带使用教程!!!)
Ajax跨域的所有方法(最详细带使用教程!!!)
|
2月前
|
数据采集 Web App开发 前端开发
Python爬虫之Ajax分析方法与结果提取#6
Ajax分析方法、Ajax结果提取【2月更文挑战第20天】
37 0
Python爬虫之Ajax分析方法与结果提取#6
|
2月前
|
XML 前端开发 JavaScript
AJAX get() 和 post() 方法
AJAX(Asynchronous JavaScript and XML)是一种用于创建快速和动态网页的技术,它允许使用 JavaScript 和 XMLHttpRequest 对象在不重新加载整个页面的情况下向服务器发送请求和接收响应。jQuery 提供了几个用于 AJAX 操作的方法,包括 .ajax()、.get() 和 .post()
14 1
|
3月前
|
前端开发 JavaScript
|
3月前
|
JSON 前端开发 JavaScript
JavaScript学习 -- ajax方法的POST请求
JavaScript学习 -- ajax方法的POST请求
29 0
|
3月前
|
XML JSON 前端开发
AJAX 中创建 XMLHttpRequest 对象的方法和常用属性、方法
AJAX 中创建 XMLHttpRequest 对象的方法和常用属性、方法
38 0
|
8月前
|
XML JSON 缓存
JQuery中$.ajax()方法参数详解
JQuery中$.ajax()方法参数详解
42 2