extjs4 магазин Addes получить параметры в URL - PullRequest
0 голосов
/ 03 августа 2011

Я использую extjs4 store

В вызовах 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 появляются в URL

. Я использую codeigniter в качестве моей структуры.Я отключил GET params в CI.Iwnat для отправки параметров в пост.с ext2 и 3 этот код работал нормально ..

Помогите мне

Спасибо

1 Ответ

2 голосов
/ 03 августа 2011

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'
    }
  },
  // ...
...