2009-10-31 51 views
4

我有一個應該加載用戶信息的jsonstore。我有它的HTTPRequest作爲一個GET,但當我最終加載商店的參數,它會自動更改爲POST請求。Ext JsonStore做一個POST,即使我將它設置爲GET

我以前做過類似的事情,除了它是一個普通的數據存儲,並且請求保持爲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} 
     }); 
    }); 

回答

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' 

       }) 
     }); 
+0

喜穗, 謝謝!那樣做了!這就是我如何使用常規數據存儲創建請求的方式,但是ext api提到json存儲已預先配置了內置的HttpProxy,所以我從未想過我需要使用代理。再次,謝謝! -Snowright – Snowright 2009-11-02 19:41:50

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'; 
相關問題