博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ExtJS4.1:AJAX提交数据的三种方式,80%人都没用过第三种
阅读量:7120 次
发布时间:2019-06-28

本文共 2597 字,大约阅读时间需要 8 分钟。

原文

参考资料

HTTP:

MIME:

国内博文:

第一种方式

示例代码

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

 执行结果

服务器端代码

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

备注

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

  • 获取数据:如果参数少用第一种,否则就用第二种。多少看浏览器的限制。
  • 发送数据:如果数据少就用第二种,否则就用第三种。多少看浏览器的限制。

 

★快速评价★
★快速评价★

转载地址:http://ysiel.baihongyu.com/

你可能感兴趣的文章
Linux平台 Oracle 11gR2 RAC安装Part1:准备工作
查看>>
【linux高级程序设计】(第八章)进程管理与程序开发 4
查看>>
Merge Two Sorted Lists
查看>>
ElasticSearch实战-入门
查看>>
OpenResty(nginx)操作mysql的初步应用
查看>>
【C++实现】HeadFirst策略模式设计模式
查看>>
C keyword register 并讨论共同使用嵌入式汇编
查看>>
C语言第12轮:指针
查看>>
Redis性能问题排查解决手册(七)
查看>>
SuperPro 3000U 编程器电源部分
查看>>
Java中间MD5加密算法完整版
查看>>
【Xamarin 开发 IOS --IOS 页面导航概念Segue】
查看>>
008_MAC 终端使用技巧
查看>>
PHP手机号中间四位用星号*代替显示
查看>>
单表的更新UPDATE和删除记录DELETE(二十六)
查看>>
C#引用传递[转]
查看>>
mysql 修改最大连接数
查看>>
Win8系统如何在桌面行显示我的电脑
查看>>
面积问题最简做法
查看>>
linux 环境下git的安装与配置
查看>>