Sencha Toucha之Ext.Ajax
Ext.Ajax是Ext.data.Connection的hi一个单实例,不需要使用new或者Ext.create方法创建实例后再使用。
类的继承关系为:
Ext.Base
Ext.data.Connection
Ext.Ajax
Ext.Ajax.request({
url: 'page.php',
params: {
id: 1
},
success: function(response){
var text = response.responseText;
// process server response here
}
});
可以直接通过设置Ext.Ajax类的选项来配置属性:
Ext.Ajax.setTimeout(60000); // 60 seconds
Ext.Ajax.setTimeout(120000); // 120 seconds
Ext.Ajax.request({
url: 'page.aspx',
timeout: 60000
});
一般来说这个类会用于你所有的Ajax请求。
一般情况下,在配置对象中定义好了地址和回调函数就可以使用Ext.Ajax了。
Ext.Ajax有三个回调函数,分别是success,failure和callback。
Ext.Ajax默认是以POST方式提交的,如果要修改为GET方法,可以通过method配置项来实现,它的值可以是POST或者GET,注意全部为大写字母。
Ext.Aiax.request({
url:'myUrl',
method:'POST',
params:{
username:'king',
password:'king'
},
callback:function(response){
console.log(response.responseText);
}
});
请求自动地将param对象打包为form数据,是作为POST请求的一部分发送出去。
当发送一个GET请求时,许多web服务器将会缓存一个应答,并总是将这个相同的应答发送给你,虽然加快了web速度,但是并不总是想要的。
disableCaching: false,
web根据Header不同,返回不同格式的数据
下面是获得JSON数据
Ext.Aiax.request({
url:'myUrl',
method:'GET',
headers:{"Content-type":"application/json"},
params:{
username:'king',
password:'king'
},
callback:function(response){
console.log(response.responseText);
}
});
callback回调
当Ajax请求失败时,Ext.Ajax可以帮你指定所有场景下的callback回调函数
Ext.Ajax.request({
url:'myUrl',
success:function(response){
console.log('请求成功');
},
failure:function(response){
console.log('请求失败');
},
callback:function(response){
console.log('数据');
}
});
当请求成功时,success函数首先会被调用,然后是callback函数。
当请求失败时,failure函数会被调用,然后是callback函数。
不论请求成功还是失败,callback回调函数总是会执行的。
请求超时和中断
当后台服务器响应时间过长而导致请求超时时。failure函数将会被调用,该函数的传递参数request对象中,timeout的属性为true
Ext.Ajax.equest({
url:'myUrl',
failure:function(reqponse){
console.log(reqponse.timeout);
}
});
缺省情况下,timeout值为30秒,但是你可以通过timeout设置该值,该值单位是毫秒
var myRequest = Ext.Ajax.equest({
url:'myUrl',
timeout:5000, // 5秒超时
failure:function(reqponse){
console.log(reqponse.timeout);
}
});
Ext.Ajax.abort(myRequest);
上面代码中,超时处理函数将被调用,reqponse.aborted属性将设置为true。
Ext.Ajax.request({
url:'myUrl',
failure:function(reqponse){
if(reqponse.timeout){
alert('Timeout','服务器超时');
}else if(reqponse.aborted){
alert('Aborted','请求终止');
}else{
alert('Bad','请求失败');
}
}
});
Sencha Toucha之Ext.Ajax的更多相关文章
- sencha touch Ext.Ajax.request 错误 Cannot call method 'request' of undefined 解决方案
凡是Cannot call method '' of undefined 这类错误大部分都可以参照下面的办法来解决 在st中有时候你会发现使用Ext.Ajax.request会出现一下错误: Cann ...
- Extjs4.0以上版本 Ext.Ajax.request请求的返回问题
Ext.Ajax.request({ url: posturl, method: 'POST', params: { ClassName: 'XXXX', FuncName: 'XXXX', para ...
- [转] form.getForm().submit的用法及Ext.Ajax.request的小小区别
原文地址:http://blog.csdn.net/hongleidy5000/article/details/7329325 if (!formDetail.getForm().isValid()) ...
- (ExtJs 3.4)Ext.Ajax.request的同步请求实现
ext3.0之前都是这样来提交:var responsea = Ext.lib.Ajax.getConnectionObject().conn;responsea.open("POST&qu ...
- [转载]ExtJs4 笔记(3) Ext.Ajax 对ajax的支持
作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/) 本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封装,函数事 ...
- Ext.Ajax中scope的作用
在Ext的前台Js中使用Ajax请求,如果想让回调函数中的this作用域跟当前的类一样如何实现呢?Ajax提供了一个参数scope. 详细代码如下: layout : { type : 'accord ...
- EXTJS 资料 Ext.Ajax.request 获取返回数据
下面是一个登陆页面调用的EXTJS login function,通过 url: '/UI/HttpHandlerData/Login/Login.ashx',获取返回登陆账户和密码! Ext.onR ...
- Ext.Ajax.request()方法和FormPanel.getForm().submit()方法,都返回success()方法的差异
我还是不发表到博客园首页吧,要不然还是要被取消,>_< 还是言归正传吧,关于Ext.Ajax.request()方法和FormPanel.getForm().submit()方法返回suc ...
- 【转】Ext.ajax.request 中的success和failure
原文链接:Ext.ajax.request 中的success和failure Ajax request对象的success事件表示request过程中没有发生错误,和自己的业务逻辑无关, 如果访问不 ...
随机推荐
- 高效的使用Response.Redirect解决一些不必要的问题(转载)
这篇文章主要介绍了如何高效的使用 Response.Redirect解决一些不必要的问题,需要的朋友可以参考下 介绍: 我正在评估一个 ASP.NET Web 项目应用.它有一些可扩展性问题.意味着当 ...
- 爱普生 RS330 打印机墨水连供装置墨盒吸墨复位方法
芯片复位方法: 先按充墨键(墨水灯按键),一下一下按,把墨车按停到右侧换墨盒的位置为止(就是右侧框框正中位置), 全程带电操作,停到换墨盒的位置后再按住芯片复位键(墨盒芯片上面白色的小按键)5秒以上再 ...
- Android NDK 开发(一)--环境搭建【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41800955 Android下的NDK开发是Android开发中不可或缺的一部分, ...
- Java局部变量final
局部变量和形参带final. 在一个线程A中开起另一个线程B,如果线程B要使用线程A的局部变量,那么A的局部变量需要定义成final.理由:局部变量是线程内部共享的,每一个线程内的不能访问其他线程的局 ...
- php curl应该怎么使用呢
原php默认并不进行此项功能的扩展,但还是有的,只是没有让它生效罢了.打开PHP安装目录,搜索以下三个文件 ssleay32.dll.libeay32.dll和 php_ curl .dll,一一拷贝 ...
- Linux字符串替换一例:根据IP地址获取指定内容
需求:使用脚本获取到本机IP地址,需要添加iptables规则,需生成网段地址 源格式:获取IP地址为10.10.10.221 目标格式:10.10.10.0 # 方法1 [hadoop@localh ...
- PHP学习当中遗漏的知识点
一, 当双引号中包含变量时,变量会与双引号中的内容连接在一起: 当单引号中包含变量时,变量会被当做字符串输出. <?php $love = "I love you!"; $s ...
- WPF:MenuItem样式
基础信息 1.MenuItem 样式 <Window.Resources> <Style TargetType="{x:Type MenuItem}"> & ...
- String 类的常用字符串方法
public class Page106 { /** * 字符串练习第五章 * @param args */ public static void main(String[] args) { Stri ...
- 更改printk打印级别
1.查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4 4 1 7 其中第一个"4"表示内核打印函数printk的打印级别,只有 ...