全体的にdojoフレームワークを使用して、html5とjavascriptを使用してクライアント側でビルドするWebアプリケーションを開発しています(サーバーと通信するためにxhr.post関数を使用しています)。サーバー側は c# の asmx サービスです。
ここで問題が発生します: 私のサービスの webmethod が例外をスローしたとき:
try
{
throw new Exception("TEST");
}
catch (Exception ex)
{
throw ex;
// TODO: send some info to the client about the error
}
クライアントはエラーが発生したことを認識し、エラー コールバック関数を起動します。
deferred = xhr.post({
url: that.config.urlService,
handleAs: that.config.handleAs,
contentType: that.config.contentType,
postData: that.config.parameters
});
deferred.then(function (res) {
that.success(res);
},
function (err) {
if (that.config.callbackFail) {
that.config.callbackFail(err, that.config.parameters);
}
}
);
しかし、「err」パラメーターには例外情報がありません。次のメッセージがあります。
「NetworkError: 500 内部サーバー エラー - http://.../Services/Applications/Metrawa/ServiceManagement/WSJob.asmx/Filter」
サーバーへの呼び出しをfirebugで検査すると、応答タブに、例外がシリアル化されていない場合など、奇妙な文字が表示されます。
私が欲しいのは、JavaScriptで例外情報を取得することです。独自のシリアル化可能な例外クラスを作成するなど、これに関するいくつかの情報を検索しましたが、どちらも機能しません。解決策はありますか?
前もって感謝します。