2012-02-07 4 views
0

私は自分のウェブサイトをデバッグするためにChromeを使用しています。だから、私はおそらく、それは私のAjax呼び出しで何かだということを知っているjQueryをデバッグする方法AJAX

エラー

Uncaught TypeError: Cannot set property 'display' of undefined 

スタックトレース

f.extend.ajax 
ClassLoader.performLoadWave 

:しかし、いつか私はこの1つのようなエラーを思い付きます私の成功の関数で。しかし、私の成功関数は多くのことを呼びます。

私は自分のコードをデバッグするのに役立つ人を探しているわけではありませんが、どうすればこの問題をデバッグできるかを尋ねています。私はたくさんのconsole.log()を使います。本当に役に立ちません。どうすればこのようなエラーを適切に見つけることができますか?データ型が「スクリプト」に設定されているので、私の質問に追加するには

EDIT

は、この例では、エラーは、私のAJAX呼び出しによってロードされるファイルであるが、どのように私が知っていることができますこれは数時間掘り起こす必要はありませんか?


私のコードを気に誰のためのコード

、ここにある:

$.ajax({ 
    url: filePath, 
    async: false, 
    cache: !Settings.debugging, 
    dataType: 'script', 
    error: function(httpRequest, message, errorThrown){ 
     if(errorThrown == 'Not Found') 
     { 
      throw 'Include cannot be found.'; 
     } 
     else 
     { 
      throw errorThrown + ': ' + (message == 'parsererror' ? 'This doesn\'t look like JavaScript!' : message); 
     } 
    }, 
    success: function(){ 

     $.each(newNeedsLoading, function(index, element){ 

      if(element !== undefined) 
      { 

       var className = element.className; 
       if(window[className] && window[className]['included']) 
       { 
        window[className]['included'](); 
       } 

       className = 'Plugin_' + element.className; 
       if(window[className] && window[className]['included']) 
       { 
        window[className]['included'](); 
       } 

       className = 'Plugin_Administration_' + element.className; 
       if(window[className] && window[className]['included']) 
       { 
        window[className]['included'](); 
       } 

       if(element.completed) 
       { 
        element.completed(); 
       } 

      } 

     }); 

     ClassLoader.isLoading = false; 

    } 
}); 
+1

[jQueryのgetScript機能を介して、追加のデバッグスクリプト]の可能複製(のhttp:/ /image/gif/paws/67078/debugging-scripts-added-via-jQuery-getscript-function) – jValdron

+1

重複を参照してください。私は今、$ .ajax呼び出しでcrossDomain:trueを追加しました。 – jValdron

答えて

0

あなたは放火犯を使用してみましたか?コンソールから送信されたパラメータやサーバーから返された応答を含む個々のAJAX要求を表示できます。あなたは右クリックしてのXMLHttpRequestsをログに記録する選択する必要がありコンソール]タブで

http://getfirebug.com/releases/lite/chrome/

。 [ネットワーク]タブを使用して、要求ごとにロードされる個々のアイテムを表示できます。 「ヘッダー」パネルにパラメータが表示されます。 [プレビュー]パネルにプレビューが表示されます。 「応答」パネルには、返信したデータを使用してサーバーから返されたエラーまたは成功が表示されます。

+0

ウェブサイトからは、「JavaScriptデバッガは利用できません」と表示されています – jValdron

0

Chromeにもhttpリクエストを記録するオプションがあり、デベロッパーツールのネットワークタブは非常に便利です。

0

JavaScriptのsuccess関数(またはこれまでのところerror)にブレークポイントを設定できます。 情報とブラウザ内のチュートリアルについては、Chrome Developer Tools: Breakpointsを参照してください。あなたの場合、Breakpoints on XHRに特に注意してください。

ブレークポイントをヒットすると、スコープ内の任意の変数の値を表示できます。 javascriptコンソールを使用して任意のjavascriptを入力することもでき、現在のスコープで実行されます。

@cockroachbillによると、XHR(XMLHttpRequest)や返されたものなど、すべてのトラフィックを見るためにネットワークタブを表示することもできます。私は特にプレビュータブが好きです。いくつかの研究の後

関連する問題