Ext.Ajax

Hierarchy

Inherited mixins

Files

Ext.data.Connection的一个单例。该类是用来和你的服务端代码进行交互的。它的用法如下:

Ext.Ajax.request({
    url: 'page.php',
    params: {
        id: 1
    },
    success: function(response){
        var text = response.responseText;
        // process server response here
    }
});
通过修改Ext.Ajax类的属性,可以设置所有请求的默认配置: 
Ext.Ajax.timeout = 60000; // 60秒
所有在Ajax请求request方法中设置的选项都会覆盖Ext.Ajax类上对应的默认选项。在以下示例代码中,请求的超时时间将会是60秒。
Ext.Ajax.timeout = 120000; // 120秒
Ext.Ajax.request({
    url: 'page.aspx',
    timeout: 60000
});
一般来说,在你的应用中,所有Ajax请求都会使用该类。单独创建Ext.data.Connection实例的主要原因是,
存在一系列请求,它们共享相同的配置,但是这些配置跟应用中的所有其它请求都不相同。
Defined By

Config options

'true'表示启用XHR对象的CORS支持(Cross-Origin Resource Sharing 跨域资源共享). 目前此参数仅在 使用XDomainRequest对象代替了XMLHttpRequest对象的IE8及以上版本浏览器中有效.

Defaults to: false

使用追加参数的方式禁用请求缓存时, 追加的参数名称.

Defaults to: "_dc"

一个配置对象,包含一个或多个事件处理函数,在对象初始化时添加到对象。 它应该是addListener指定的一个有效的监听器配置对象, 一次添加多个事件处理函数。

Ext JS 组建的DOM事件

虽然一些Ext JS组件类输出选定的DOM事件(例如"click"、"mouseover"等), 但是这只能通过添加额外的值(如果能)。例如,DataViewitemclick传递被单击的节点。为了通过Component的子元素直接访问DOM事件, 我们需要指定element选项来标识要 添加DOM监听器的Component属性:

new Ext.panel.Panel({
    width: 400,
    height: 200,
    dockedItems: [{
        xtype: 'toolbar'
    }],
    listeners: {
        click: {
            element: 'el', //bind to the underlying el property on the panel
            fn: function(){ console.log('click el'); }
        },
        dblclick: {
            element: 'body', //bind to the underlying body property on the panel
            fn: function(){ console.log('dblclick body'); }
        }
    }
});

此参数'true'时即设置XHR对象属性 withCredentials = true

Defaults to: false

Defined By

Properties

扩展事件

Defaults to: []

Ext.Ajax
: Boolean

新发出的请求是否中断所有未完成的请求。

Defaults to: false

一个包含了请求头信息的对象,将会添加到使用当前对象发出的每一个请求中。

一个包含了请求头信息的对象,将会添加到使用当前对象发出的每一个请求中。

如果为true,将会在GET请求中添加一个cache-buster(缓存杀手)。默认为true。

如果为true,将会在GET请求中添加一个cache-buster(缓存杀手)。默认为true。

一个带有属性值的对象,用来给每一个使用当前对象发出的请求附加额外的参数。 Session信息以及你需要在每个请求中传递的其它信息一般都会放在这里。

根据当前浏览器创建对应的XHR传输对象.

根据当前浏览器创建对应的XHR传输对象.

本对象包含任何有监听器的事件的键。监听器可以在实例上直接设置, 或者在其类或者父类(通过observe) 或者在MVC EventBus上设置。本对象的值为真 (一个非零的数字)和假(0或者undefined)。它们并不代表确切的监听...

本对象包含任何有监听器的事件的键。监听器可以在实例上直接设置, 或者在其类或者父类(通过observe) 或者在MVC EventBus上设置。本对象的值为真 (一个非零的数字)和假(0或者undefined)。它们并不代表确切的监听器数量。 如果事件必须被触发,它的值是真的, 如果没有必要,就是假的。

本属性的设计目的是避免没有监听器时调用fireEvent的开销。 如果fireEvent要调用成百上千次,这尤其有用。 用法:

 if (this.hasListeners.foo) {
     this.fireEvent('foo', this, arg1);
 }

在本类中设置为true将一个对象标识为实例化的Observable或其子类。

Defaults to: true

Ext.Ajax
method : String

默认使用的HTTP请求方式。注意,这个配置项是大小写敏感的,所有字母都应该大写(如果你没有设置这个配置项,但是存在请求参数,那么将会 使用"POST",否则将会使用"GET"。)。

默认使用的HTTP请求方式。注意,这个配置项是大小写敏感的,所有字母都应该大写(如果你没有设置这个配置项,但是存在请求参数,那么将会 使用"POST",否则将会使用"GET"。)。

本身 获取当前类的引用,此对象被实例化。不同于 statics, this.self是依赖范围,它意味着要使用动态继承。 ...

本身

获取当前类的引用,此对象被实例化。不同于 statics, this.self是依赖范围,它意味着要使用动态继承。 参见 statics 详细对比

Ext.define('My.Cat', {
    statics: {
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        alert(this.self.speciesName); // 依赖 'this'
    },

    clone: function() {
        return new this.self();
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',
    statics: {
        speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'
    }
});

var cat = new My.Cat();                     // alerts 'Cat' 猫
var snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard' 雪豹

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'
Ext.Ajax
timeout : Number

请求的超时时间,单位毫秒。默认为30000。

请求的超时时间,单位毫秒。默认为30000。

Ext.Ajax
: String

向服务器发送请求时默认使用的URL。 如果服务器通过一个URL接受所有请求,设置一次这个参数比在每一个请求中都设置一次要轻松得多。

Defined By

Methods

中断一个进行中的请求.

Parameters

  • request : Object (optional)

    默认为上次请求

中断所有进行中的请求

( Object config )private

添加配置

Parameters

向本Observable可能触发的事件列表中添加指定的事件。

Parameters

  • eventNames : Object/String...

    要么是有事件名作为属性,属性值为 true的对象。例如:

    this.addEvents({
        storeloaded: true,
        storecleared: true
    });
    

    要么是作为参数的任意个数的事件名。例如:

    this.addEvents('storeloaded', 'storecleared');
    

Parameters

( String/Object eventName, [Function fn], [Object scope], [Object options] )
向本对象添加一个事件处理函数,例如: myGridPanel.on("mouseover", this.onMouseOver, this); 这个方法也允许传递单个参数,参数为一个 包含指定多个事件的属性的配置对象。例如: ...

向本对象添加一个事件处理函数,例如:

myGridPanel.on("mouseover", this.onMouseOver, this);

这个方法也允许传递单个参数,参数为一个 包含指定多个事件的属性的配置对象。例如:

myGridPanel.on({
    cellClick: this.onCellClick,
    mouseover: this.onMouseOver,
    mouseout: this.onMouseOut,
    scope: this // Important. Ensure "this" is correct during handler execution
});

你也能为每个事件处理函数单独指定选项:

myGridPanel.on({
    cellClick: {fn: this.onCellClick, scope: this, single: true},
    mouseover: {fn: panel.onMouseOver, scope: panel}
});

也能使用在特定作用域的方法。注意 必须指定scope:

myGridPanel.on({
    cellClick: {fn: 'onCellClick', scope: this, single: true},
    mouseover: {fn: 'onMouseOver', scope: panel}
});

Parameters

  • eventName : String/Object

    被监听的事件名。 也可以是属性名字是事件名字的对象。

  • fn : Function (optional)

    事件调用的方法, 或者如果指定了scope,在指定scope的方法名*。 会被调用, 参数为fireEvent的参数加上下述options参数。

  • scope : Object (optional)

    事件处理函数执行的作用域(this应用的上下文) 如果省略, 默认为触发事件的对象。

  • options : Object (optional)

    包含事件处理函数配置的对象。

    注意: 不像ExtJS 3.x, options对象也会作为最后一个参数 传递给每一个事件处理函数。

    这个对象可能包含以下任何一个属性:

    • scope : Object

      事件处理函数执行的作用域(this应用的上下文) 如果省略, 默认为触发事件的对象。

    • delay : Number

      事件触发后,调用事件处理函数延时毫秒数。

    • single : Boolean

      设置为true添加一个事件处理函数,只处理下一次触发的事件, 然后移除这个函数。

    • buffer : Number

      使事件处理函数在Ext.util.DelayedTask中调度运行, 延时指定的毫秒数。如果事件在这段事件再次触发, 原先的事件处理函数再调用, 新的事件处理函数接替。

    • target : Ext.util.Observable

      只有当事件在目标Observable上触发时调用事件处理函数, 如果事件是从Observable的子类起泡的,不会调用事件处理函数

    • element : String

      这个选项只对绑定在Components上的监听器有效。 Component的一个属性名,这个属性引用一个待添加监听器的元素

      这个选项在Component构造过程中向Components的元素添加DOM事件监听器有用。 这些元素只有在Component渲染之后才会存在。 例如, 向Panel的body中添加click监听器:

        new Ext.panel.Panel({
            title: 'The title',
            listeners: {
                click: this.handlePanelClick,
                element: 'body'
            }
        });
      

      组合选项

      使用options参数, 可以组合不同类型的监听器:

      一个延时的一次性监听器:

      myPanel.on('hide', this.handleClick, this, {
          single: true,
          delay: 100
      });
      
向任何Observable对象(或者Ext.Element)添加监听器, 当组件被销毁时,监听器自动被移除 ...

向任何Observable对象(或者Ext.Element)添加监听器, 当组件被销毁时,监听器自动被移除

Parameters

  • item : Ext.util.Observable/Ext.Element

    添加监听器的目标项。

  • ename : Object/String

    事件名或者包含的事件名属性的对象。

  • fn : Function

    (可选的) 如果ename参数是事件名, 这就是一个事件处理函数。

  • scope : Object

    (可选的) 如果ename参数是事件名, 这就是(this引用的上下文) 事件处理函数执行的作用域。

  • opt : Object

    (可选的)如果ename参数是事件名, 这就是addListener的选项。

( Object name, Object member )private

Parameters

( Object xtype )private

添加 Xtype

Parameters

( Array/Arguments ) : Objectdeprecatedprotected
调用原来的方法,这是以前的override重写 Ext.define('My.Cat', { constructor: function() { alert("I'm a cat!"); } }); ...

调用原来的方法,这是以前的override重写

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callOverridden();

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

This method has been deprecated since 4.1

版本 使用 callParent 代替.

Parameters

  • : Array/Arguments

    参数的参数,数组或'参数'对象 来自当前方法,例如: this.callOverridden(arguments)

Returns

  • Object

    返回调用重写方法的结果。

( Array/Arguments args ) : Objectprotected

所谓的"parent"方法是指当前的方法。 这是以前的方法派生或重写(参见 Ext.define)。

 Ext.define('My.Base', {
     constructor: function (x) {
         this.x = x;
     },

     statics: {
         method: function (x) {
             return x;
         }
     }
 });

 Ext.define('My.Derived', {
     extend: 'My.Base',

     constructor: function () {
         this.callParent([21]);
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // alerts 21

这可以用来重写如下:

 Ext.define('My.DerivedOverride', {
     override: 'My.Derived',

     constructor: function (x) {
         this.callParent([x*2]); // 调用原来的My.Derived构造
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // 现在提示 42

This also works with static methods.

 Ext.define('My.Derived2', {
     extend: 'My.Base',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // 调用 My.Base.method
         }
     }
 });

 alert(My.Base.method(10);     // alerts 10
 alert(My.Derived2.method(10); // alerts 20

然后,它也可以重写静态方法。

 Ext.define('My.Derived2Override', {
     override: 'My.Derived2',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // 调用 My.Derived2.method
         }
     }
 });

 alert(My.Derived2.method(10); // 现在提示 40

Parameters

  • args : Array/Arguments

    这个参数, 通过当前方法得到数组或者 arguments 对象, 例如: this.callParent(arguments)

Returns

  • Object

    返回调用父类的方法的结果。

清除请求对象中所有残留信息.

Parameters

移除本对象的包括受管理的监听器在内的所有监听器

移除本对象的所有受管理的监听器

重置请求的超时时间

Parameters

( String eventName, Array args, Boolean bubbles )private

Continue to fire event.

Parameters

创建异常对象

Parameters

( Object newName, [Array beginEnd] ) : Functionprivate

Creates an event handling function which refires the event from this object as the passed event name.

Parameters

  • newName : Object
  • beginEnd : Array (optional)

    The caller can specify on which indices to slice

Returns

创建响应对象.

Parameters

通过调用this.getBubbleTarget()(如果存在)允许本Observable对象触发的事件沿着继承体系起泡 在Observable基类中没有实现类。 ...

通过调用this.getBubbleTarget()(如果存在)允许本Observable对象触发的事件沿着继承体系起泡 在Observable基类中没有实现类。

这通常被Ext.Components用来将事件起泡到它的容器。 见Ext.Component.getBubbleTarget。Ext.Component中的默认实现 返回Component的直接容器。但是如果需要一个明显的target, 它可以被重写 以更快地访问需要的target。

使用范例:

Ext.override(Ext.form.field.Base, {
    //  Add functionality to Field's initComponent to enable the change event to bubble
    initComponent : Ext.Function.createSequence(Ext.form.field.Base.prototype.initComponent, function() {
        this.enableBubble('change');
    }),

    //  We know that we want Field's events to bubble directly to the FormPanel.
    getBubbleTarget : function() {
        if (!this.formPanel) {
            this.formPanel = this.findParentByType('form');
        }
        return this.formPanel;
    }
});

var myForm = new Ext.formPanel({
    title: 'User Details',
    items: [{
        ...
    }],
    listeners: {
        change: function() {
            // Title goes red if form has been modified.
            myForm.header.setStyle('color', 'red');
        }
    }
});

Parameters

  • eventNames : String/String[]

    待起泡的事件名,或者事件名数组。

( Object config )private

拓展

Parameters

使用传递过来的参数(去掉事件名,加上传递给addListener的options对象 )触发指定的事件。 ...

使用传递过来的参数(去掉事件名,加上传递给addListeneroptions对象 )触发指定的事件。

通过调用enableBubble,一个事件 能被设置为沿着Observable的继承体系(见Ext.Component.getBubbleTarget)向上起泡。

Parameters

  • eventName : String

    待触发的事件名。

  • args : Object...

    传递给事件处理函数的可变数量的参数

Returns

  • Boolean

    如果任何一个事件处理函数返回false,就返回false,否则返回true。

Gets the bubbling parent for an Observable

Returns

( Object name )private

得到配置项

Parameters

( Object options ) : HTMLElementprivate

从options参数中获取form元素对象.

Parameters

  • options : Object

    发送请求的参数

Returns

  • HTMLElement

    form元素, 或null.

得到初始化配置项

Parameters

获取最近一次请求对象.

Returns

  • Object

    请求对象, 若无请求返回null.

( Object config )private

根据名称判断配置项是否存在

Parameters

检查本对象是否有特定事件的监听器, 或者检查事件是否起泡。 检查的结果表明事件是否需要出发。

Parameters

  • eventName : String

    待检查的事件名

Returns

  • Boolean

    如果事件被监听或者起泡,返回true, 否则返回false

( Object config ) : Objectprotected
这个类的初始化配置。典型例子: Ext.define('My.awesome.Class', { // 这是默认配置 config: { name: 'Awesome', isAwes...

这个类的初始化配置。典型例子:

Ext.define('My.awesome.Class', {
    // 这是默认配置
    config: {
        name: 'Awesome',
        isAwesome: true
    },

    constructor: function(config) {
        this.initConfig(config);
    }
});

var awesome = new My.awesome.Class({
    name: 'Super Awesome'
});

alert(awesome.getName()); // 'Super Awesome' 超级棒

Parameters

Returns

  • Object

    mixins 混入原型 键-值对

判断form表单是否用于文件上传.

Parameters

判断请求状态是否为未完成.

Parameters

  • request : Object (optional)

    默认为上次交互请求

Returns

  • Boolean

    若请求处于未完成状态则返回'true'.

( Object name, Object mixinClass )private

内部使用混入预处理器(mixins pre-processor)

Parameters

addManagedListener的简写方法 向任何Observable对象(或者Ext.Element)添加监听器, 当组件被销毁时,监听器自动被移除 ...

addManagedListener的简写方法

向任何Observable对象(或者Ext.Element)添加监听器, 当组件被销毁时,监听器自动被移除

Parameters

  • item : Ext.util.Observable/Ext.Element

    添加监听器的目标项。

  • ename : Object/String

    事件名或者包含的事件名属性的对象。

  • fn : Function

    (可选的) 如果ename参数是事件名, 这就是一个事件处理函数。

  • scope : Object

    (可选的) 如果ename参数是事件名, 这就是(this引用的上下文) 事件处理函数执行的作用域。

  • opt : Object

    (可选的)如果ename参数是事件名, 这就是addListener的选项。

removeManagedListener的简写方法 移除通过mon方法添加的监听器。 ...

removeManagedListener的简写方法

移除通过mon方法添加的监听器。

Parameters

  • item : Ext.util.Observable/Ext.Element

    待移除监听器的项

  • ename : Object/String

    事件名或者包含的事件名属性的对象。

  • fn : Function

    (可选的) 如果ename参数是事件名, 这就是一个事件处理函数。

  • scope : Object

    (可选的) 如果ename参数是事件名, 这就是(this引用的上下文) 事件处理函数执行的作用域。

根据当前浏览器和请求选项创建对应的XHR传输对象. 在IE下可能是XDomainRequest而不是 XMLHttpRequest.

Parameters

( String/Object eventName, [Function fn], [Object scope], [Object options] )
addListener的简写方法 向本对象添加一个事件处理函数,例如: myGridPanel.on("mouseover", this.onMouseOver, this); 这个方法也允许传递单个参数,参数为一个 包含指定...

addListener的简写方法

向本对象添加一个事件处理函数,例如:

myGridPanel.on("mouseover", this.onMouseOver, this);

这个方法也允许传递单个参数,参数为一个 包含指定多个事件的属性的配置对象。例如:

myGridPanel.on({
    cellClick: this.onCellClick,
    mouseover: this.onMouseOver,
    mouseout: this.onMouseOut,
    scope: this // Important. Ensure "this" is correct during handler execution
});

你也能为每个事件处理函数单独指定选项:

myGridPanel.on({
    cellClick: {fn: this.onCellClick, scope: this, single: true},
    mouseover: {fn: panel.onMouseOver, scope: panel}
});

也能使用在特定作用域的方法。注意 必须指定scope:

myGridPanel.on({
    cellClick: {fn: 'onCellClick', scope: this, single: true},
    mouseover: {fn: 'onMouseOver', scope: panel}
});

Parameters

  • eventName : String/Object

    被监听的事件名。 也可以是属性名字是事件名字的对象。

  • fn : Function (optional)

    事件调用的方法, 或者如果指定了scope,在指定scope的方法名*。 会被调用, 参数为fireEvent的参数加上下述options参数。

  • scope : Object (optional)

    事件处理函数执行的作用域(this应用的上下文) 如果省略, 默认为触发事件的对象。

  • options : Object (optional)

    包含事件处理函数配置的对象。

    注意: 不像ExtJS 3.x, options对象也会作为最后一个参数 传递给每一个事件处理函数。

    这个对象可能包含以下任何一个属性:

    • scope : Object

      事件处理函数执行的作用域(this应用的上下文) 如果省略, 默认为触发事件的对象。

    • delay : Number

      事件触发后,调用事件处理函数延时毫秒数。

    • single : Boolean

      设置为true添加一个事件处理函数,只处理下一次触发的事件, 然后移除这个函数。

    • buffer : Number

      使事件处理函数在Ext.util.DelayedTask中调度运行, 延时指定的毫秒数。如果事件在这段事件再次触发, 原先的事件处理函数再调用, 新的事件处理函数接替。

    • target : Ext.util.Observable

      只有当事件在目标Observable上触发时调用事件处理函数, 如果事件是从Observable的子类起泡的,不会调用事件处理函数

    • element : String

      这个选项只对绑定在Components上的监听器有效。 Component的一个属性名,这个属性引用一个待添加监听器的元素

      这个选项在Component构造过程中向Components的元素添加DOM事件监听器有用。 这些元素只有在Component渲染之后才会存在。 例如, 向Panel的body中添加click监听器:

        new Ext.panel.Panel({
            title: 'The title',
            listeners: {
                click: this.handlePanelClick,
                element: 'body'
            }
        });
      

      组合选项

      使用options参数, 可以组合不同类型的监听器:

      一个延时的一次性监听器:

      myPanel.on('hide', this.handleClick, this, {
          single: true,
          delay: 100
      });
      

当请求从服务器端返回时调用.

Parameters

Returns

( Object names, Object callback, Object scope )private

更新配置项

Parameters

( Object fn, Object scope )private

扩展事件

Parameters

当XHR的状态改变时触发

Parameters

upload函数的回调处理. 在我们通过iframe提交了form表单后, 还需要伪造一个响应对象来模拟XHR, 将响应结果从刚完成加载的 iframe的页面文档(document body)或一个文本框(textarea)中填入responseText属性中. 然后我们就可以删除此iframe.

Parameters

( Object options, Object requestOptions, Object async, Object username, Object password )private

根据当前浏览器和请求选项创建对应的XHR传输对象, 并执行open操作. 这些逻辑被放入另一个内部的方法, 以便于重写所有参数和选项处理并返回一个合适的打开连接.

Parameters

判断响应状态是否为成功.

Parameters

Returns

  • Object

    一个包含成功/异常状态码的对象

让给定的类成为可观察的实例。 这个方法在有类从本类派生或者使用本类作为一个mixin时调用。

Parameters

( Object origin, String[] events, [String prefix] )

从指定的Observable接替选定的事件就好像事件是this触发的。

例如,如果你想要扩展Grid, 你可能决定转发store的一些事件。 所以你能在你的initComponent中实现这个:

this.relayEvents(this.getStore(), ['load']);

grid实例将会有一个observable的'load'事件, 这个事件的参数是store的load事件的参数。任何grid的load事件触发的函数 可以使用this访问grid。

Parameters

  • origin : Object

    本对象要接替事件的Observable对象

  • events : String[]

    被接替的事件名数组

  • prefix : String (optional)

    附加到事件名的公共前缀。例如:

    this.relayEvents(this.getStore(), ['load', 'clear'], 'store');
    

    这样grid将会以'storeload'和'storeclear'转发store的'load'和'clear'事件。

移除事件处理函数。

Parameters

  • eventName : String

    事件处理函数关联的事件类型

  • fn : Function

    待移除的事件处理函数。 必须是对传递给addListener 的函数的引用。

  • scope : Object

    (可选的) 原先为事件处理函数指定的作用域。 它必须是和原先调用addListener时指定的作用域参数是一样的,否者监听器将会被移除。

移除通过mon方法添加的监听器。

Parameters

  • item : Ext.util.Observable/Ext.Element

    待移除监听器的项

  • ename : Object/String

    事件名或者包含的事件名属性的对象。

  • fn : Function

    (可选的) 如果ename参数是事件名, 这就是一个事件处理函数。

  • scope : Object

    (可选的) 如果ename参数是事件名, 这就是(this引用的上下文) 事件处理函数执行的作用域。

Remove a single managed listener item

Parameters

  • isClear : Boolean

    True if this is being called during a clear

  • managedListener : Object

    The managed listener item See removeManagedListener for other args

向一个远程服务器发送HTTP请求.

重要: Ajax服务器请求是异步的, 就是说此函数将在服务器响应前就已经返回. 任何对响应 数据的处理需要使用回调函数来实现.

Ext.Ajax.request({
    url: 'ajax_demo/sample.json',
    success: function(response, opts) {
        var obj = Ext.decode(response.responseText);
        console.dir(obj);
    },
    failure: function(response, opts) {
        console.log('server-side failure with status code ' + response.status);
    }
});

当需要回调函数在正确的作用域中执行时, 可以使用'scope'参数.

Parameters

  • options : Object

    一个包含如下属性的属性对象:

    (由于此参数对象还会作为参数传给回调函数, 所以此对象中还可以包含一些其他的自定义参数用于在回调函数中处理.)

    • url : String/Function

      发送请求的URL, 或一个返回URL字符串的函数, 函数的作用域为scope属性值. 默认为当前Connection对象的url属性值.

    • params : Object/String/Function

      一个包含所有发送给服务器的请求参数的属性对象, 或一个url编码 字符串, 或一个能返回前二者之一的函数. 函数的作用域为scope属性值.

    • method : String

      请求使用的HTTP方式, 默认为当前Connection对象的method属性值, 或当method为空时, 无参数就使用"GET", 有参数就使用"POST". 注意: 此参数名称是区分大小写的, 所以应该全为大写.

    • callback : Function

      在收到HTTP响应之后调用的函数. 此回调函数无论响应结果为成功或失败都会执行. 函数参数如下:

      Parameters

    • success : Function

      在请求成功返回时调用此函数. 函数参数如下:

      Parameters

      • response : Object

        包含了响应数据的XMLHttpRequest对象.

      • options : Object

        调用request函数时的参数.

    • failure : Function

      在请求返回失败时调用此函数. 函数参数如下:

      Parameters

      • response : Object

        包含了响应数据的XMLHttpRequest对象.

      • options : Object

        调用request函数时的参数.

    • scope : Object

      执行回调函数时的作用域: 即回调函数中"this"所指的对象. 如果url或params 参数被指定为返回参数值的函数时, 那么此作用域也这对这些函数起作用. 默认为浏览器的window对象.

    • timeout : Number

      本次请求的超时时间(毫秒).默认为30秒.

    • form : Ext.Element/HTMLElement/String

      提交参数的表单的 <form> 元素对象或<form> 元素的ID

    • isUpload : Boolean

      仅当与form参数一同使用时有意义.

      'true'表示表单对象是一个文件上传栏(当form表单设置了属性enctype "multipart/form-data"时, 此参数自动为'true').

      • 文件上传功能无法通过普通的"Ajax"技术实现, 因为它们不支持XMLHttpRequests. 于是我们用标准的提交form表单的方式取而代之: 我们使用一个临时的<form>元素, 并将其target属性指定一个动态生成的隐藏的<iframe>, 此iframe插入到当前页面文档中并且 在收到返回数据之后被删除.

      服务器的响应由浏览器进行解析, 用来为IFRAME创建页面文档. 如果服务器端使用JSON发送响应对象, 那么响应头中的 Content-Type必须设置为"text/html"来通知浏览器将文本保持原样的插入页面文档中.

      从页面文档重新读取响应文本, 创建一个包含responseText响应文本属性的虚拟XMLHttpRequest对象,用来满足事件触发和回调函数的要求.

      需要注意的是文件上传时的数据包是以multipart/form的内容类型发送的, 而一些服务器端技术(特别是像JEE)可能需要一些特殊处理来 从数据包内容中重新读取参数名称和参数值.

    • headers : Object

      请求头信息.

    • xmlData : Object

      发送的XML文本. 注意: 使用此参数将取代params参数来发送请求数据. 所有params中的参数将被追加到URL后面.

    • jsonData : Object/String

      发送的JSON数据. 注意: 使用此参数将取代params参数来发送请求数据. 所有params中的参数将被追加到URL后面.

    • disableCaching : Boolean

      设为'true'时即会在GET方式的请求中添加一个不重复的参数来禁用缓存.

    • withCredentials : Boolean

      设为'true'时即会给XHR对象添加withCredentials属性.

Returns

  • Object

    返回request对象. 可以用来取消当前请求.

继续事件的触发(见suspendEvents)。

如果事件被使用queueSuspended参数挂起, 那么所有 在事件挂起期间触发的事件将会被发送到任意监听器。

( Object config, Object applyIfNotSet )private

设置配置项

Parameters

为请求设置各种参数, 像url, params等.

Parameters

Returns

( Object xhr, Object options, Object data, Object params )private

为请求设置全部的请求头信息.

Parameters

( Object options, String method ) : Stringprivatetemplate

用来重写method参数的模板方法

This is a template method. a hook into the functionality of this class. Feel free to override it in child classes.

Parameters

Returns

( Object options, String params ) : Stringprivatetemplate

用来重写params参数的模板方法

This is a template method. a hook into the functionality of this class. Feel free to override it in child classes.

Parameters

Returns

( Object options, String url ) : Stringprivatetemplate

用来重写url的模板方法

This is a template method. a hook into the functionality of this class. Feel free to override it in child classes.

Parameters

Returns

获取从该对象被实例化的类的引用。 请注意不同于 self, this.statics()是独立的作用域,无论this是否运行,总是返回其中的调用类。

Ext.define('My.Cat', {
    statics: {
        totalCreated: 0,
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        var statics = this.statics();

        alert(statics.speciesName);     // 总是等于'Cat',无论'this'是什么,
                                        // 相当于:My.Cat.speciesName

        alert(this.self.speciesName);   // 依赖 'this'

        statics.totalCreated++;
    },

    clone: function() {
        var cloned = new this.self;                      // 依赖 'this'

        cloned.groupName = this.statics().speciesName;   // 相当于: My.Cat.speciesName

        return cloned;
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',

    statics: {
        speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
    },

    constructor: function() {
        this.callParent();
    }
});

var cat = new My.Cat();                 // alerts 'Cat', 然后提示 'Cat'

var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', 然后提示 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
alert(clone.groupName);                 // alerts 'Cat'

alert(My.Cat.totalCreated);             // alerts 3

Returns

挂起所有事件的触发。(见resumeEvents)

Parameters

  • queueSuspended : Boolean

    传true,让挂起的事件排队而不是丢弃所有挂起的事件, 这些事件将会在调用resumeEvents之后触发。

配置扩展

removeListener的简写方法 移除事件处理函数。 ...

removeListener的简写方法

移除事件处理函数。

Parameters

  • eventName : String

    事件处理函数关联的事件类型

  • fn : Function

    待移除的事件处理函数。 必须是对传递给addListener 的函数的引用。

  • scope : Object

    (可选的) 原先为事件处理函数指定的作用域。 它必须是和原先调用addListener时指定的作用域参数是一样的,否者监听器将会被移除。

( String/HTMLElement/Ext.Element form, String url, String params, Object options )

使用一个隐藏的iframe上传form表单

Parameters

Defined By

Events

当一个请求数据对象的网络请求发送前触发此事件.

Parameters

当一次请求成功完成时触发此事件.

Parameters

当服务器返回一个HTTP错误状态值时触发此事件.

HTTP状态位参见 HTTP Status Code Definitions.

Parameters