0

私のsenchatouch2.1では、ログインが成功すると、トークンがサービスから返送されます。このトークンは、保存して、今後のすべてのサービス呼び出しで使用する必要があります。私はリモートWebサービスを扱っているので、すべてのストアがJsonPプロキシを使用してデータをフェッチします。そのため、このようなすべての呼び出しにトークンを追加します。JsonPはヘッダーをサポートしていないため、このトークンをurl paramとして追加する予定ですが、アプリから発信されたすべてのJsonP呼び出しに対してこれを行う方法がわかりません。

AJAX呼び出しに関する同様の質問が見つかりました
すべてのAJAXリクエスト内でユーザー詳細(セッショントークン)を送信します(Sencha Touch 2)

しかし、JsonPは「beforerequest」イベントとヘッダーをサポートしていないため、行き詰まります。

このURLパラメータを追加するためにリッスン/インターセプトできる他のイベントはありますか?この機能を持つ基本プロキシクラスを作成する方法はありますか?これを行う方法を知っている場合は、いくつかの例を共有してください。

4

1 に答える 1

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;
  }
});

他のより良い方法を知っているなら共有してください。

于 2013-01-15T12:22:27.553 に答える