• EXT ajax


    转载:http://my.oschina.net/zimingforever/blog/65382

    EXT ajax request是ext中对于ajax请求的实现。

    通过客户端向服务端发送Ajax请求,可以“直接”调用MVC的action方法,并传递参数,action返回值可以是普通字符串,也可以是json对象。请求可以添加自定义头信息

    例1异步请求,发送请求头。

    Ext.onReady(function () {
        new Ext.Button({
            renderTo: "div1",
            text: "后台Ajax提交",
            handler: function () {
                Ext.Ajax.request({
                    url: 'Ajax_Func1',
                    headers: {
                        'userHeader': 'userMsg'
                    },
                    params: { a: 10, b: 20 },
                    method: 'GET',
                    success: function (response, options) {
                        Ext.MessageBox.alert('成功', '从服务端获取结果: ' + response.responseText);
                    },
                    failure: function (response, options) {
                        Ext.MessageBox.alert('失败', '请求超时或网络故障,错误编号:' + response.status);
                    }
                });
            },
            id: "bt1"
        });
     
    });

    后台的代码:

    public ContentResult Ajax_Func1(int a, int b)
    {
        string userHeaderMsg = Convert.ToString(Request.Headers["userHeader"]);
        return Content((a + b).ToString() + ",userHeader:" + userHeaderMsg);
    }

    例2 异步请求,返回json结果

    Ext.onReady(function () {
     
        new Ext.Button({
            renderTo: "div1",
            text: "后台Ajax提交方式2返回JSON",
            handler: function () {
                Ext.Ajax.request({
                    url: 'Ajax_Func2',
                    params: { n: 10 },
                    method: 'POST',
                    callback: function (options, success, response) {
                        if (success) {
                            var responseJson = Ext.JSON.decode(response.responseText);
     
                            Ext.Msg.alert("成功", options.params.n + "的阶乘是:<font color='red'>" + responseJson.n1 + "</font><br />"
                          + options.params.n + "的累加是:<font color='red'>" + responseJson.n2 + "</font>");
                        } else {
                            Ext.Msg.confirm('失败',
                                                '请求超时或网络故障,错误编号:[' + response.status + ']是否要重新发送?', function (btn) {
                                                    if (btn == 'yes') {
                                                        Ext.Ajax.request(options);
                                                    }
                                                });
                        }
                    }
                });
            }
        });
     
    });

    例3 异步文件上传:

    //文件上传
    Ext.get("button1").on("click", function () {
        Ext.Ajax.request({
            url: "Ajax_FileUp",
            isUpload: true,
            form: "form1",
            success: function (response) {
                Ext.MessageBox.alert("上传成功,文本文件内容:", response.responseText);
            }
        });
    });
    public ContentResult Ajax_FileUp(HttpPostedFileBase file)
    {
        System.IO.StreamReader r = new System.IO.StreamReader(file.InputStream, System.Text.UTF8Encoding.Default);
        var str = r.ReadToEnd();
        return Content(str);
    }

    例4 异步请求事件。 当发起ajax请求之前,可以监听beforerequest事件,本例每当发起ajax事件时,都会把计算器+1:

    var ajaxCount = 0;
    //每当Ajax请求发起时触发:
    Ext.Ajax.on('beforerequest', function () { Ext.get("span1").update(++ajaxCount) }, this);

    ajax几个常用的参数如下:

    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。

     

    总结一下,ext ajax和jquery的ajax差不多,主要是熟悉几个参数,处理好返回值。

     

     

  • 相关阅读:
    cocos2dx学习资源汇总(转)
    Cocos2dx 绘制动画
    Cocosdx中CCMenuItem菜单项进一步介绍
    Cocos2dx中场景切换
    ActionScript3.0 大数据类型
    Cocos2dx 菜单项
    as3.0 Function.apply()与Function.call()方法简介
    Inherited用法代码示例
    区分保留字跟关键字
    标题栏上画按钮代码示例
  • 原文地址:https://www.cnblogs.com/xiepeixing/p/2736751.html
Copyright © 2020-2023  润新知