1

javascriptでエラーハンドリングをしたいです。

javascriptで発生したエラーをログに記録したい。

データベースを使用してエラーを保存したくありません.すべてのエラーをtxtファイルに保存したいです(そのtxtファイルは、そのWebサイトがホストされているサーバーに存在する必要があります。他の人がそのファイルにアクセスできないようにするため) .

上記の要件を行う方法。

Googleで検索して見つけました

function WriteToFile() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\Test.txt", true);
s.WriteLine('Hello');
s.Close();
}

これもすべての条件で機能するわけではありません。

1. Internet Explorer 以外のブラウザ (activex オブジェクトをサポートしていない) を使用している

2. SP2 がインストールされた XP マシンで IE ブラウザを使用しており、activex オブジェクトがブロックされている

ですから、この問題を解決するのを手伝ってください。

前もって感謝します。

4

2 に答える 2

1

まず、try/catch を使用してエラーを検出します。

try
{
    // code that could error here
}
catch(err)
{
    // do an ajax call to the server
}

このcatchブロックでは、サーバーに対して ajax 呼び出しを行うことができます。サーバーでは、リクエストを処理してエラーをローカルのテキスト ファイルに記録するために、サーバー側のスクリプト (PHP、ASP など) が必要です。上記の catch ブロックでerr.messageは、ajax 呼び出しに含めることができるエラー メッセージ文字列が表示されます。

于 2012-11-30T11:56:03.080 に答える
0

こんにちは、次のコードのようにエラーを処理する別の方法を使用できます

jQuery.ajax({
      type: "POST",
      url: "urlpage",
      dataType: "html",
      data: "types":$("#catid").val(),
      success: function (response) {
              alert("Successfully!!!");
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
      }
    });

エラーが発生した場合は、別のajax関数または同じ関数をもう一度呼び出すことができます。

これは主に、エラーを処理するためのすべてのajax呼び出しで機能します。試してみてください。

于 2012-11-30T12:21:33.943 に答える