2013-01-15 34 views
0

在我的sencha touch 2.1中,成功登錄後,一個令牌被從服務發送回來,必須存儲並使用所有將來的服務調用。由於我正在處理遠程Web服務,因此所有商店都使用JsonP代理來獲取數據,這就是爲什麼我要將令牌添加到所有此類調用中的原因。由於JsonP不支持頭文件,我打算將這個令牌添加爲url參數,但我不知道如何爲源自應用程序的所有JsonP調用執行此操作。如何用每個JsonP請求發送用戶令牌?

的AJAX調用一個類似的問題被發現
Send user details (session token) within every AJAX requests (Sencha Touch 2)

但由於JSONP不支持「beforerequest」事件和頭,我堅持。

是否有任何其他事件我可以聽/攔截添加此網址參數?有沒有辦法編寫具有此功能的基本代理類?請分享一些例子,如果你知道如何做到這一點。

回答

0

好吧,我找到了一種適合我的方式。

我擴展JsonP代理,並在buildUrl方法我附加了緩存的令牌,現在我在我所有的商店中使用這個代理。這裏是代碼:

Ext.define('myshop.proxy.CustomJsonpProxy', { 
    extend: 'Ext.data.proxy.JsonP', 
    alias: 'proxy.customjsonpproxy', 
    buildUrl: function(request) { 
    var me  = this, 
     url  = me.callParent(arguments); 
    if(!Ext.isEmpty(loggedInUserToken)){ 
     url = Ext.urlAppend(url, "token="+loggedInUserToken); 
    } 
    return url; 
    } 
}); 

如果你知道其他更好的方法,請分享。

相關問題