59

Ajaxリクエストがトリガーされた場所からJavascriptコードを見つける方法は? Firebug のコンソールでは、ファイルと行番号を特定できますが、jQuery のまたは類似の機能を使用している場合$.ajax$.postFirebug のコンソールに jQuery ライブラリ ファイルのみが記録されます。jQuery関数の実際のトリガーポイントを取得する方法はありますか?

4

3 に答える 3

136

お持ちChromeDevToolでご利用くださいSources

これを開くと、右側に表示されXHR/fetch Breakpointsます。チェックAny XHRすると、使用するすべてのリクエストでスクリプトが一時停止しますXMLHttpRequest(リクエストを使用しないリクエストはすべてjsonp)。

Any XHRオプションが利用できない場合 (リストされているだけ) 、フィールドを空白No Breakpointsのままにして Enter キーをクリックする必要があります。これにより、オプションが作成されます。(この情報を提供してくれたYasmin Frenchに感謝します)+Break when URL contains:Any XHR

(同じくCall Stack右側にある) を使用すると、リクエストの発信元が何であったかがわかります。

しかし、私が述べたように、jsonpこれらをトレースしたい場合、これはリクエストで壊れませんjQuery. この部分を見つけるには、次の手順を使用できます。

  1. jsonpコードでリクエストを作成し、この場所にブレークポイントを設定します。
  2. コードのこの部分を呼び出して、デバッガーに切り替えます。
  3. を使用するStep intoと、jQuery コードが表示されます。そこにブレークポイントを配置すると、Chrome はjsonpリクエストごとに停止します。

注: Chrome (おそらくベータ版または開発版のみ) では、リロード時にブレークポイントが失われる傾向があるため、リロード時にブレークポイントがまだ存在するかどうかを確認する必要があります。

于 2013-06-20T09:33:50.987 に答える
1

chrome および firefox/firebug では、.always()またはおそらく ajax 呼び出しの beforeSend ハンドラーで console.trace() を使用して、誰がそれを呼び出したかを確認できます。

于 2013-06-20T08:03:57.320 に答える