您好,我正在处理具有分页功能的 extjs 屏幕,请求中使用的方法必须通过 HTTP POST 动词响应。
我配置了我的商店,以便所有读取调用都是帖子。意识到,extjs 只是简单地传递请求有效负载的查询字符串,我认为可以将参数分开,就像它使用商店的 params 加载一样。
所以我想知道是否有可能在请求有效负载中使用 {params: {start: 0, page: 1, limit: 20}} 之类的东西,而不是查询字符串 start = 0 & page = 1 & limit = 20。
我将 Extjs 4.2 和 Java 与 RESTEasy 一起使用。
最佳答案
没有任何内置功能,但您可以使用以下内容扩展商店的代理:
Ext.define('Ext.ux.proxy.ModifiedAjax', {
extend: 'Ext.data.proxy.Ajax',
alias: 'proxy.modifiedajax',
defaultParams: 'param',
removeDefaultParams: true,
buildRequest: function(operation) {
var me = this,
request,
defaultParams = me.getParams(operation);
me.extraParams = me.extraParams || {};
if (me.defaultParams && defaultParams) {
me.extraParams[me.defaultParams] = me.applyEncoding(defaultParams);
}
var params = operation.params = Ext.apply({}, operation.params, me.extraParams);
if (me.removeDefaultParams != true) {
Ext.applyIf(params, defaultParams);
}
request = new Ext.data.Request({
params : params,
action : operation.action,
records : operation.records,
operation: operation,
url : operation.url,
proxy: me
});
request.url = me.buildUrl(request);
operation.request = request;
return request;
}
});
并且在商店中您需要设置代理的
type
至 'modifiedajax'
.
关于extjs - extjs中http post时的分页参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19232774/