当我在Sencha Touch 2.3.1中调用 mystore.sync()时,ExtJS会将定义的代理URL附加到我的模型类的所有属性中。例如,它向服务器发送PUT方法,如: myserver / restapi / area / students?prop1 = AAA& prop2 = BBB& prop3 = CCC& prop4 = DDD& prop5 = EEE
我认为这种行为很尴尬并且它重复了请求大小,因为JSON对象已经插入到请求体内:
请求标头= Content-Type:application / json
请求正文= {"标识":" 1"" PROP1":" AAA"" PROP2":" BBB"" Prop3":" CCC"" Prop4":" DDD"" Prop5&#34 ;: " EEE"}
所以,想象一下,如果我有很多大尺寸的字符串属性......它可能会达到URL大小限制......
在寻找解决方案时,我尝试在REST代理中将 appendId 属性的值更改为 false ,但它刚刚删除了此URL的一个参数(idProperty) ...
有人知道吗,我该怎么改变它?这是默认行为吗?
我的代码示例。
我有商店:
Ext.define('MyStore', {
extend: 'Ext.data.Store',
config: {
model: 'MyModel',
proxy: {
type: 'rest',
appendId: false, //I tried to turn it to false to it doesn't change my URL
url: 'http://myserver/restapi/area/students
}
}
});
模型类:
Ext.define('MyModel', {
extend: 'Ext.data.Model',
config: {
fields: [
'Id',
'Prop1',
'Prop2',
'Prop3',
'Prop4',
'Prop5'
],
idProperty: [
'Id'
]
}
});
谢谢!