有没有办法将jsondata附加到POST请求以加载商店?我知道通过GET请求可以在加载调用中添加 params:{data1:1,data2:2} ,但是我没有成功附加jsondata。我尝试过以下几种变体而没有运气。我正在使用Extjs 2.2 w / Alfresco
//create store
var memberStore = new Ext.data.JsonStore({
proxy : new Ext.data.HttpProxy({
url : url/getMembers,
method : 'POST'
}),
fields : ['username'],
root : 'members'
});
//function that loads store when it is called
function getMembers() {
memberStore.load({
//params : {action : "getmembers", groupname : "GROUP_Test"}
jsonData : {
action : "getmembers",
groupname : "GROUP_Test"
}
});
}
答案 0 :(得分:2)
我没有调用store.load(),而是创建了一个运行数据的ajax请求的函数。在成功的回调中,我会加载商店。以下是我的代码。
//create store
var memberStore = new Ext.data.JsonStore({
fields : ['username'],
root : 'members'
});
//function that loads store when it is called
function getMembers() {
var parameters = {
node : dynamicNodeId
}
Ext.Ajax.Request({
url : 'url/getMembers',
method : 'POST',
jsonData : Ext.encode(parameters),
success : function(response, opts) {
//decode json string
var responseData = Ext.decode(response.responseText);
//Load store from here
memberStore.loadData(responseData);
}
});
}//eo getMembers
答案 1 :(得分:2)
你可以这样做。
Ext.apply(store.baseParams, { param1: '1', param2: '2'});
Ext.apply(store.proxy.conn, { jsonData: { data1: 'data1', data2: 'data2'} });
store.load();
答案 2 :(得分:2)
**HttpProxy**
的构造函数接受一个连接对象。 Connection对象理解**jsonData**
。所以你可以这样做:
//create store
var memberStore = new Ext.data.JsonStore({
proxy : new Ext.data.HttpProxy({
url : url/getMembers,
method : 'POST',
//here is the change
jsonData: {data1 : 1, data2 : 2}
}),
fields : ['username'],
root : 'members'
});
//function that loads store when it is called
function getMembers() {
memberStore.load({
//params : {action : "getmembers", groupname : "GROUP_Test"}
jsonData : {
action : "getmembers",
groupname : "GROUP_Test"
}
});
}
答案 3 :(得分:1)
您可以使用baseParams:{key:“value”,key2:“value2”}
这应该与使用GET和POST的商店一起使用。