zoukankan      html  css  js  c++  java
  • ExtJS4.2:AJAX提交数据的三种方式,80%人都没用过第三种

    参考资料

    HTTP:https://zh.wikipedia.org/wiki/HTTP

    MIME:https://zh.wikipedia.org/wiki/MIME

    国内博文:http://blog.csdn.net/gueter/article/details/1524447

    第一种方式

    示例代码

     1 var data = {
     2     name: '段光伟',
     3     email: 'shijiucha@qq.com'
     4 };
     5 
     6 Ext.Ajax.request({
     7     url: '../handlers/GetData.ashx',
     8     method: 'GET',
     9     params: { users: Ext.encode(data) }
    10 });

     执行结果

    服务器端代码

    1 context.Response.Write(context.Request.QueryString["users"]);

    第二种方式

    示例代码

     1 var data = {
     2     name: '段光伟',
     3     email: 'shijiucha@qq.com'
     4 };
     5 
     6 Ext.Ajax.request({
     7     url: '../handlers/GetData.ashx',
     8     method: 'POST',
     9     params: { users: Ext.encode(data) }
    10 });

    执行结果

    服务器端代码

    1 context.Response.Write(context.Request.Form["users"]);

    第三种方式

    示例代码

     1 var data = {
     2     name: '段光伟',
     3     email: 'shijiucha@qq.com'
     4 };
     5 
     6 Ext.Ajax.request({
     7     url: '../handlers/GetData.ashx',
     8     method: 'POST',
     9     jsonData: data
    10 });

     执行结果

    服务器端代码

    1 StreamReader sr = new StreamReader(context.Request.InputStream);
    2 context.Response.Write(sr.ReadToEnd());

    ExtJs中Proxy的配置

    配置为第一种方式的代码

     1 Ext.define('Demo.model.User', {
     2     extend: 'Ext.data.Model',
     3     fields: [
     4         { name: 'name' },
     5         { name: 'email' }
     6     ],
     7     proxy: {
     8         type: 'ajax',
     9         api: {
    10             create: '../handlers/GetData.ashx'
    11         },
    12         actionMethods: {
    13             create : 'GET',
    14             read   : 'GET',
    15             update : 'GET',
    16             destroy: 'GET'
    17         },
    18         reader: {
    19             type: 'json',
    20             root: 'users'
    21         },
    22         writer: {
    23             type: 'json',
    24             encode: true,
    25             root: 'users'
    26         }
    27     }
    28 });

    配置为第二种方式的代码

     1 Ext.define('Demo.model.User', {
     2     extend: 'Ext.data.Model',
     3     fields: [
     4         { name: 'name' },
     5         { name: 'email' }
     6     ],
     7     proxy: {
     8         type: 'ajax',
     9         api: {
    10             create: '../handlers/GetData.ashx'
    11         },
    12         reader: {
    13             type: 'json',
    14             root: 'users'
    15         },
    16         writer: {
    17             type: 'json',
    18             encode: true,
    19             root: 'users'
    20         }
    21     }
    22 });

    配置为第三种方式的代码

     1 Ext.define('Demo.model.User', {
     2     extend: 'Ext.data.Model',
     3     fields: [
     4         { name: 'name' },
     5         { name: 'email' }
     6     ],
     7     proxy: {
     8         type: 'ajax',
     9         api: {
    10             create: '../handlers/GetData.ashx'
    11         },
    12         reader: {
    13             type: 'json',
    14             root: 'users'
    15         }
    16     }
    17 });

    备注

    这里没有总结着三种方式的使用场景,请大家给我个建议吧。我大概的想法是这样的。

    • 获取数据:如果参数少用第一种,否则就用第二种。多少看浏览器的限制。
    • 发送数据:如果数据少就用第二种,否则就用第三种。多少看浏览器的限制。
  • 相关阅读:
    Dijjer:给流媒体插上 P2P 的同党
    gnomecolorchooser:桌面颜色设置小对象
    LXPanel:轻巧疾速的桌面面板
    批量创立缩略图
    SPE IDE:跨平台的 Python IDE
    主管的信
    使用 TRegistry 类[2]: 读取 IE 浏览器的 Start Page
    用多媒体库 Bass.dll 播放 mp3 [15] 设置与获取播放速度
    用多媒体库 Bass.dll 播放 mp3 [14] 频率均衡器
    用多媒体库 Bass.dll 播放 mp3 [13] 混响(Reverb)效果
  • 原文地址:https://www.cnblogs.com/happyframework/p/3046810.html
Copyright © 2011-2022 走看看