1

「XHRブレークポイント」を設定してAJAXリクエストをトリガする「Any XHR」をブレークするように設定しました。 jsライブラリ行。これは意味がありません。このようにして、コード内のどの行がリクエストをトリガーしたのかわかりません。私は何をすべきか?Chromeは、デバッグ時にコールスタック内のライブラリ行のみを表示します。AJAX

さらに詳しい情報:

ことが重要である場合、それは存在しないURLを要求しているため、AJAXの応答は、エラーです。
また、ブラックボックスの角度 - ブレークポイントがトリガーされません。

答えて

0

AngularはすぐにAjaxリクエストを作成しません。代わりに、ダイジェストが終了するまで待ちます。

$http.getメソッドを傍受したり、リクエストに使用しているコードを見つけることができます。

debugCall($http, "get"); // put this somewhere where it's only called once 

function debugCall(object, methodName){ 
    var originalMethod = object[methodName]; 
    object[methodName] = function(){ 
     debugger; 
     originalMethod.apply(this, arguments) 
    } 
} 

Angularコールスタックを見て、ヒントを得ることもできます。たとえば、this demoでは、コールスタックの最初の関数はeventHandlerと呼ばれます。

このコールフレームにアクセスし、コンソールでevent.target.outerHTMLを実行すると、<button ng-click="doXhr()">Do XHR 2</button>となります。これにより、リクエストを探す場所を知ることができます。

+0

Angularの仕組みについての良い洞察$ httpメソッドをインターセプトすることについては、問題は見つからないということです。そのため、デバッガを使用してそれを探し始めました。もちろん、私はコードを通過することができます、ちょうどそれをデバッガを使用して速くしたい。 – naneri

+0

@naneri私はあなたがそれを傍受することを妨げるものを理解していません。 '$ http.get'関数は、アプリ内のどこでも1回だけ上書きする必要があります。これが完了すると、 '$ http.get'がどこで使われているかにかかわらず一時停止します。 –

関連する問題