ext.ajax.request方法用法详解

json数据服务器回传的方法.

在api总指出回传的格式

 代码如下 复制代码
{success;true,data:{clientName: "Fred. Olsen Lines",   portOfLoading:"FXT",portOfDischarge: "OSL" }  }}}

需要注意的是这里的success和data是关键字,(姑且这么叫吧)在data中是数据在客户端通过

Ext .decode(response.responseText).clientName获得.第一个回传数据.这里证明在用

success: function(response){}函数的时候,参数response是一个json字符串,通过Ext .decode解析了data的数据集.

//成功时回叫,第一个参数为XMLHttpRequest对象,第二个参数传入指定的options

所有,这里前后台的代码应该这样统一:

后台(asp):

 代码如下 复制代码

response.write "{success:false,data:{msg:'密码或用户名不能为空!'}}"

response.write "{success:true,data:{msg:'登陆成功!'}}"

前台:

 代码如下 复制代码

success: function(response,options ){Ext .MessageBox.alert(' 提示',Ext.decode(response.responseText).msg);},
 failure: function(response,options ){Ext .MessageBox.alert('提示','Ext.decode(response.responseText).msg);},

还可以:

 代码如下 复制代码
Ext .util.JSON.decode(response.responseText); 这

个也是对json编码的解析
 

Ext.Ajax.request方法

 代码如下 复制代码
<SPAN style="FONT-SIZE: medium">Ext.Ajax.request({  
       url:'findbyid.action',
       params:{
        id:cell.getId()
        },
        success: function(resp,opts) {
                             var respText = Ext.util.JSON.decode(resp.responseText);                                                
                             name=respText.name;
                             oid=respText.id; 
                          findbyid(graph,cell,oid,name);
                             //Ext.Msg.alert('错误', respText.name+"====="+respText.id);
                     },
                     failure: function(resp,opts) {
                             var respText = Ext.util.JSON.decode(resp.responseText);
                             Ext.Msg.alert('错误', respText.error);
                      }  
      
      });</SPAN>

在Ext开发过程中,基本上时刻需要用到异步请求,那么这个请求到底是怎么执行的呢,我们接下来来探讨下

先:Ext.Ajax类继承了Ext.data.Connection,为Ajax的请求提供了最大灵活性的操作方式

再简单请求基础上我们加上一个使用的

 说明的是这种请求通常都是放在触发某个事件的处理方法中的

url:就是我们要请求的路径

params:里面的参数用逗号隔开,就是我们要发出请求带的参数

success:是服务器处理成功返回

failure:是服务器处理失败返回

重点讲的就是如何处理返回值信息,我们的resp这个参数就显得非常重要了

resp是Ext构造的一个返回结果对象,如服务器端返回“this is a test!”(可以通过throw new Exception("this is a test!")简单实现)。那么返回将是
如下内容:

 代码如下 复制代码
<SPAN style="FONT-SIZE: medium">tId.1
status.200
statusText.OK
getResponseHeader.[object Object]
getAllResponseHeaders.Server: Apache-Coyote/1.1
Content-Type: text/html;charset=GBK
Content-Language: zh-CN
Content-Length: 108
Date: Wed, 31 Oct 2007 12:51:23 GMT
responseText.
<html>
<head>
<title>错误</title>
</head>
<body>
  <h1>错误:this is a test!</h1>
</body>
</html>
responseXML.
argument.undefined</SPAN>

从上面结果可以看出来,最开始是一些状态属性,我们也不常用,不管他。里面真正常用的是responseText与responseXML两个属性,那么这里面的responseText内容又被Ext用html包装了,但使用Ext.MessageBox展示出来正合适;reponseXML将在服务器端返回“text/xml”类型时使用。若服务器端返回是“text/json”类型时,客户端需要使用obj= Ext.util.JSON.decode(result.responseText);进行构造json对象,然后就可以正常使用了
具体操作返回值 我们用JSON就这么写
ServletActionContext.getResponse().setContentType("text/json; charset=utf-8");
ServletActionContext.getResponse().getWriter().write("{success:true,info:'更新信息成功',name:'" + oo.getName() + "',id:'" + id + "'}");
显然我这里返回的是JSON的值了(记住里面的属性值一定要加单引号)
 var respText = Ext.util.JSON.decode(resp.responseText);
这个就可获得返回结果对象,要使用属性的话respText.id等都可直接用了

 
使用Ext.Ajax.request方法来进行的,该方法可以用来向服务器端发送一个http请求,并可以在回调函数中处理返回的结果。往远程服务器发送一个HTTP请求,发送Ajax调用的时候该方法的签名如下:
Ext.Ajax.rquest( [Object options] ) : Number

服务器的响应是异步的,因此需要在回调函数中处理服务器端返回的数据。回调函数可以定义在request方法调用的参数options中。另外,在 request方法中可以定义Ajax请求的一些其它属性。参数options是一个对象,该对象包含了Ajax请求所需的各种参数及回调处理参数等。 options中可以包含的各个属性及含义如下所示:
  url String 指定要请求的服务器端url,默认值为Ajax对象中配置的URL参数值。
  params Object/String/Function 指定要传递的参数,可以是一个包含参数名称及值的对象,也可以是name=xx&birthday=1978-1-1类似的url编码字符串,或者是一个能返回上述两种内容的函数。
  method String 指定发送Ajax请求使用的method,可以是GET或POST方式。默认情况下,如果请求中没有传递任何参数则使用GET,否则使用POST。
  callback Function 指定Ajax请求的回调函数,该函数不管是调用成功或失败,都会执行。传递给回调函数的参 数有三个,第一个options表示执行request方法时的参数,第二个success表示请求是否成功,第三个参数response表示用来执行 Ajax请求的XMLHttpRequest 对象。关于XMLHttpRequest可以通过
查询详细的信息。

success Function 指定当Ajax请求执行成功后执行的回调函数,传递给回调函数两个参数,第一个参数response表示执行Ajax请求的XMLHttpRequet对象,第二个参数表示执行request方法时的options对象。
  failure Function 指定当请求出现错误时执行的回调函数,传递给回调函数两个参数,第一个参数response表示执行Ajax请求的XMLHttpRequet对象,第二个参数表示执行request方法时的options对象。
  scope Object 指定回调函数的作用域,默认为浏览器window。
  form Object/String 指定要提交的表单id或表单数据对象。
  isUpload Boolean 指定要提交的表单是否是文件上传表单,默认情况下会自动检查。
  headers Object 指定请求的Header信息。
  xmlData Object 指定用于发送给服务器的xml文档,如果指定了该属性则其它地方设置的参数将无效。
  jsonData Object/String 指定需要发送给服务器端的JSON数据。如果指定了该属性则其它的地方设置的要发送的参数值将无效。
  disableCaching Boolean 是否禁止cache

时间: 2024-07-28 15:34:43

ext.ajax.request方法用法详解的相关文章

jQuery中ajax - get() 方法实例详解_AJAX相关

在jquery中使用get,post和ajax方法给服务器端传递数据,在上篇文章给大家分享了jquery中ajax-post()方法实例,下面通过本文继续学习jQuery中ajax - get() 方法,具体介绍请看下文. jQuery Ajax 参考手册 实例 使用 AJAX 的 GET 请求来改变 div 元素的文本: $("button").click(function(){ $.get("demo_ajax_load.txt", function(resul

jQuery中ajax - post() 方法实例详解_AJAX相关

在jquery中的ajax有二个数据发送模式,一种是get,另一种是post(). jQuery Ajax 参考手册 实例 请求 test.php 网页,忽略返回值: $.post("test.php"); TIY 实例 通过 AJAX POST 请求改变 div 元素的文本: $("input").keyup(function(){ txt=$("input").val(); $.post("demo_ajax_gethint.asp

jQuery中ajax - get() 方法实例详解

在jquery中使用get,post和ajax方法给服务器端传递数据,在上篇文章给大家分享了jquery中ajax-post()方法实例,下面通过本文继续学习jQuery中ajax - get() 方法,具体介绍请看下文. jQuery Ajax 参考手册 实例 使用 AJAX 的 GET 请求来改变 div 元素的文本: $("button").click(function(){ $.get("demo_ajax_load.txt", function(resul

jQuery中ajax - post() 方法实例详解

在jquery中的ajax有二个数据发送模式,一种是get,另一种是post(). jQuery Ajax 参考手册 实例 请求 test.php 网页,忽略返回值: $.post("test.php"); TIY 实例 通过 AJAX POST 请求改变 div 元素的文本: $("input").keyup(function(){ txt=$("input").val(); $.post("demo_ajax_gethint.asp

JavaScript中的splice方法用法详解_javascript技巧

JavaScript中的splice主要用来对js中的数组进行操作,包括删除,添加,替换等. 注意:这种方法会改变原始数组!. 1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数) 2.插入-向数组指定位置插入任意项元素.三个参数,第一个参数(插入位置),第二个参数(0),第三个参数(插入的项) 3.替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数.第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项) 示例:

thinkPHP中session()方法用法详解_php实例

本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 session(name,name,value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的session值,如果传入null表示删除sess

thinkPHP中session()方法用法详解

本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 session(name,name,value='') 参数 name(必须):如果传入数组 则表示进行session初始化,如果传入null表示清空当前session,如果是字符串则表示session赋值.获取或者操作. Value(可选):要设置的session值,如果传入null表示删除sess

jquery load方法用法详解

格式 load(url,data,function(response,status,xhr)) 如何使用data 1.加载一个php文件,该php文件不含传递参数  代码如下 复制代码 $("#myID").load("test.php"); //在id为#myID的元素里导入test.php运行后的结果2. 加载一个php文件,该php文件含有一个传递参数  代码如下 复制代码 $("#myID").load("test.php&qu

基于jQuery.ajax之post()用法详解

$.post(url,[data],[callback],[type]) 说明:这个函数跟$.get()参数差不多,多了一个type参数,type为请求 的数据类型,可以是html,xml,json等类型,如果我们设置这个参数为:json,那么返回的格式则是json格式的,如果没有设置,就 和$.get()返回的格式一样,都是字符串的  代码如下 复制代码 $.post("data.php",$("#firstName.val()"),function(data){