2011-08-03 36 views
0

我使用extjs4店extjs4店就將此得到PARAMS在URL

在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它的得到參數出現在url

我使用codeigniter作爲我的框架。我禁用了CI中的GET參數。 Iwnat發送郵件中的params。與ext2和3此代碼工作很好..

幫我

感謝

+0

怎麼你不是發送store.As的PARAMS的代碼粘貼每次我知道你需要在ExtJS4創建模型,您粘貼上面的一個在ExtJS4中不起作用。 – Unknown

+0

我以這種方式發送參數'content_type_store.load({params:{hi:''}}); 」。我是extjs4 MVC的新手。你可以幫我嗎我怎麼能做到這一點 – nani1216

+0

http://stackoverflow.com/questions/6060947/extjs4-store-baseparams-config-property –

回答

2

method:'POST'在代理服務器的配置將無法正常工作。沒有這樣的配置選項。但是有兩種方法可以使商店使用POST。該simplier一個 - 只要覆蓋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' 
    } 
    }, 
    // ... 
更好
+0

但我怎麼能通過請求正文? – Isaac