更改要发送到服务器的URL

更改要发送到服务器的URL,url,extjs,store,Url,Extjs,Store,我有一个组件,当输入组件文本时,在服务器上进行查询并在组件中输出网格视图中的匹配信息。但我有问题,我需要以以下格式发送到服务器URL: /book/list?filter=[{"field":"Name","type":"string","value":"query"}] /book/list?filter=field=Name&type=string&value=kn&query=kn& 但现在我以这种格式发送: /book/list?filter=[{"f

我有一个组件,当输入组件文本时,在服务器上进行查询并在组件中输出网格视图中的匹配信息。但我有问题,我需要以以下格式发送到服务器URL:

/book/list?filter=[{"field":"Name","type":"string","value":"query"}]
/book/list?filter=field=Name&type=string&value=kn&query=kn&
但现在我以这种格式发送:

/book/list?filter=[{"field":"Name","type":"string","value":"query"}]
/book/list?filter=field=Name&type=string&value=kn&query=kn&
此组件:

xtype: 'gridpicker',
                        store: {
                            fields: [
                                {name: 'id', type: 'int'},
                                {name: 'Book', type: 'stting'},
                                {name: 'Author', type: 'stting'},
                            ],

                            proxy: {
                                type: 'ajax',
                                url: '/book/list?filter=',
                                reader: {
                                    type: 'json',
                                    root: 'data',
                                    successProperty: 'success'
                                }
                            }
                        },
                        beforeQuery: function(query) {
                            query.combo.getGrid().getSelectionModel().deselectAll();
                            query.combo.store.proxy.extraParams = {                            
                               field:"Name",  
                               type: "string",
                               value: query.combo.rawValue                                
                            };
                            query.combo.store.load();
                            return query;
                        },
                        gridConfig: {
                            columns: [
                                {header: 'Author', dataIndex: 'author', flex: 1, hidden: false},
                                {header: 'Book.', dataIndex: 'book', width: 40, hidden: false},
                                {header: 'Name', dataIndex: 'name', width: 30, hidden: false},
                                {header: 'Price', dataIndex: 'price', width: 40, hidden: false},
                            ],
                            hideHeaders: false,
                            ignoreSelection: false
                        },
                        typeAhead: false,
                        hideTrigger: false,
                        name:'enter',
                        forceSelection: true,
                        width: 500
                    },

我不知道你想要什么,但也许这是正确的答案

proxy = {
  type: 'ajax',
  url: '/book/list?filter=' + JSON.stringify([{
     "field":"Name",
     "type":"string",
     "value":"query"
  }]),
  reader: {
    ....
  }
}

不要将
url
属性用于发送参数。使用
参数

proxy: {
     type: 'ajax',
     url: '/book/list',
     params: {
         filter: "[{field:Name,type:string,value:query}]"
     }
     reader: {
                  type: 'json',
                  root: 'data',
                  successProperty: 'success'
     }
} 
检查