さて、Firebugを使用して、関数がDevで定義されていないかどうかを判断します。私が本番でやりたがっているのは、エラーが受信されたことを示すモーダルウィンドウで、クリックすると別のページにリダイレクトされます。それほど簡単ではありません。JavascriptとjQueryでトラッピング関数が定義されていないエラー
この機能は動作し、呼び出されるコンポーネントが機能することをご理解ください。私はjquery ajax関数を介して受信していないエラーを示す目的で関数呼び出しのスペルを間違えてしまいます。
私は非同期に実行されますいくつかのAJAX機能のデフォルトオプションを設定するには.ajaxSetupを使用しています:
$.ajaxSetup({
type: "POST",
dataType: "json",
url: "DMF.cfc",
data: {
qID: 1,
returnFormat: "json"
},
beforeSend: function() {
$('#loadingmessage').fadeIn(); // show the loading message.
},
complete: function() {
$('#loadingmessage').fadeOut(); // show the loading message.
}
}); //end AjaxSetup
実際のAJAX呼び出しがある:
$.ajax({
data: {
method: 'getCurrentIssues'
},
success: function(response) {
nsNewDebtshowDebtIssues(response);
},//end success function
error: function(jqXHR, exception) {
alert("Error running nsNewDebt.showDebtIssues");
}
}) //end getCurrentIssues Ajax Call
私は強制的にエラーsuccess関数で実行されるメソッドは、実際にはnsNewDebt.showDebtIssuesでなければなりません。 Firebugは正しくコンソールにエラーを表示します。nsNewDebtshowDebtIssuesは定義されていません。実際のエラーメッセージは実行されません。そのため、エンドユーザーがページを実行していた場合、ページがハングアップしていました。
要約すると、このようなエラーが発生した時刻を追跡する方法を知りたいのですが、.ajaxSsetupのエラーセクションに配置するのが望ましいですが、それぞれの.ajax呼び出しで必要な場合は優先します。
「成功」機能のコードを「try {...} catch(err){...}」ブロックにラップするのはどうですか? – Pointy