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 });

    备注

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

    • 获取数据:如果参数少用第一种,否则就用第二种。多少看浏览器的限制。
    • 发送数据:如果数据少就用第二种,否则就用第三种。多少看浏览器的限制。
  • 相关阅读:
    Oracle导出存储过程
    正在执行的SQL和之前执行的SQL
    查看TEMP使用情况
    Oracle TEMP表空间切换
    VARCHAR2字段关联
    PL/SQL 异常处理
    pl/sql 关于变量定义的问题
    FILTER优化
    PL/SQL拼接和使用绑定变量
    循环处理数据提交
  • 原文地址:https://www.cnblogs.com/happyframework/p/3046810.html
Copyright © 2011-2022 走看看