2012-02-24 17 views
0

私はHttpProxyを拡張し、24個のストアをあらかじめロードしています。このエラーは、ロードする24th Storeを追加した後に発生します。要求に応じてロードすることを試みましたが、laodに呼び出されるとエラーが発生します。 ExtJSの専門家が助けてください!私はExtJSの2.3ExtJS 2.3 - Uncaught RangeError:最大呼び出しスタックサイズを超えました

Uncaught RangeError: Maximum call stack size exceeded 
Ext.override.listeners.loadexception extensions.js:12 
Ext.util.Event.fire ext-all-debug.js:1521 
Ext.util.Observable.fireEvent 

extension.jsで私の小さな拡張子コード使用しています:

Ext.override(Ext.data.HttpProxy,{ 
    listeners: { 
     'loadexception' : function(proxy, options, response){ 
      var data = eval("(" + response.responseText + ")"); 
      if (data.errorCode == "1") { //session expired or auth error 
       location.reload(true); 
      } else { 
       this.fireEvent("loadexception",proxy,options,response); 
      } 

     } 
    } 
}); 

答えて

0

あなたloadexception例外ハンドラはelseでブロック. So if somehow data.errorCode is not同じ例外がスローさを '1'再帰的に繰り返し呼び出すことになります。したがって、コールスタックサイズがエラーを超えています。

ソリューション:あなたはそれを防ぐために、次の操作を行うことができ、

  1. あなたはloadexceptionそれを行わないように、応答メッセージを変更したり、処理することを確認してくださいを発射した場合
  2. をブロックし、他にloadexceptionを発射しないでくださいdata.errorCode != 1
  3. すべてを処理するいくつかの例外があります。
+0

ありがとうShiplu!なんらかの理由で私はイベントの宣言が止まると思っていました。拡張に加えていくつかのケースでイベントを処理するので、私は再びイベントを処理する必要がありました。ありがとうございました! – user979051

関連する問題