參考資料
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 });
備注
這里沒有總結着三種方式的使用場景,請大家給我個建議吧。我大概的想法是這樣的。
- 獲取數據:如果參數少用第一種,否則就用第二種。多少看瀏覽器的限制。
- 發送數據:如果數據少就用第二種,否則就用第三種。多少看瀏覽器的限制。
