即使我将它设置为GET,外部JsonStore也会执行POST

时间:2009-10-31 03:34:11

标签: javascript json http extjs

我有一个应该加载用户信息的jsonstore。我将HTTPRequest作为GET,但是当我最终使用参数加载存储时,它会自动更改为POST请求。

之前我做过类似的事情,除了它是一个常规的数据存储区,请求仍然是GET。当提供params来执行POST请求时,是jsonstore的默认行为吗?

    var userDisplayStore = new Ext.data.JsonStore({
        url : myurl/userinfo,
        method : 'GET',
        fields : ['firstName', 'lastName', 'email', 'userName'],
        id : 'user-display-store',
        root : 'data'
    });

    userGridPanel.on('rowclick', function(grid, dataIndex, event) {
        var dataRow = grid.getStore().getAt(dataIndex);
        userDisplayStore.load({
            params : {username : dataRow.data.username}
        });
    });

2 个答案:

答案 0 :(得分:10)

尝试在您的商店中使用代理...并将该方法设置为代理的一部分。

我认为会是这样的:

       var userDisplayStore = new Ext.data.JsonStore({
                fields : ['firstName', 'lastName', 'email', 'userName'],
                id : 'user-display-store',
                root : 'data',
                proxy : new Ext.data.HttpProxy({
                     method: 'GET',
                     url: 'myurl/userinfo'

                })
        });

答案 1 :(得分:1)

另一种方式,

var userDisplayStore = new Ext.data.JsonStore({
   url : myurl/userinfo,
   fields : ['firstName', 'lastName', 'email', 'userName'],
   id : 'user-display-store',
   root : 'data'
});
userDisplayStore.proxy.conn.method = 'GET';