如何创建一个将默认参数编码为JSON而不是HTTP参数的存储

How to create a store which encodes the default params to JSON and not HTTP parameters

本文关键字:参数 JSON 存储 HTTP 编码 默认 创建 何创建 一个      更新时间:2023-09-26

我希望我的商店的请求有效负载看起来像这样:

{"start":0,"limit":10,"sort":"BIRTH_PLACE","dir":"ASC"}

与Ajax请求使用jsonData它工作:

Ext.Ajax.request({
        url : 'bank/admin/listUsers',
        jsonData: request,
        success : function(response, options) {
            console.log('Response:', response);
            console.log('Options:', options);
            var reply = Ext.decode(response.responseText);
            console.log('Reply:', reply);
        }
    });

但是宽度存储我的请求负载看起来像这样:

start=0&limit=10&sort=username&dir=ASC

我发现这样做是有效的。只需让您的商店代理用params的内容填充jsonData属性。

Ext.define('MyProxy', {
    alias: 'myproxy',
    extend: 'Ext.data.proxy.Ajax',
    getMethod: function(request) 
    {
        return 'POST';
    },
    buildRequest: function(operation) 
    {
        var request = this.callParent(arguments);
        request.jsonData = request.params;
        request.params = {};
        return request;
    },
});