extjs4商店addes在网址中获取params

时间:2011-08-03 10:31:39

标签: xmlhttprequest extjs4 getparameter

我正在使用extjs4商店

在xhtpp调用中,它显示http://localhost/home_dir/index.php/questions/content_pie?_dc=1312366604831&hi=&page=1&start=0&limit=25

这是商店代码

    var content_type_store = new Ext.data.Store({
    proxy: new Ext.data.HttpProxy({
    url: BASE_URL+'questions/content_pie',
    method:'POST',
    params :{hi:''}

    }),
    reader: new Ext.data.JsonReader({
    root: 'results'
    }, [
    'qtype',
    'qval'
    ])
    });

即使我将方法设置为POST,它的get params也会出现在url

我正在使用codeigniter作为我的框架。我在CI中禁用了GET参数。 Iwnat在帖子中发送params。使用ext2和3,这段代码运行良好..

帮帮我

谢谢

1 个答案:

答案 0 :(得分:2)

代理配置中的

method:'POST'将无效。没有这样的配置选项。但是,有两种方法可以使用商店POST。更简单的 - 只需覆盖getMethod函数:

var content_type_store = new Ext.data.Store({
  proxy: {
    type: 'ajax',
    url: BASE_URL+'questions/content_pie',
    extraParams :{hi:''},
    // Here Magic comes
    getMethod: function(request){ return 'POST'; }

  },
  reader: {
    type: 'json',
    root: 'results'
  }
});

第二种方式:覆盖代理的actionMethods属性。如果您选择这种方式,您的代理应如下所示:

  // ...
  proxy: {
    type: 'ajax',
    url: BASE_URL+'questions/content_pie',
    extraParams :{hi:''},
    // Here Magic comes
    actionMethods: {
      create : 'POST',
      read   : 'POST',
      update : 'POST',
      destroy: 'POST'
    }
  },
  // ...