我正在开发一个使用 html5 和 javascript 构建客户端的 Web 应用程序,总体上使用 dojo 框架(我正在使用 xhr.post 函数与服务器通信)。服务器端是 c# 中的 asmx 服务。
问题来了:当我的服务的 web 方法抛出异常时:
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 中获取异常信息。我已经搜索了一些关于此的信息,比如创建一个自己的可序列化异常类,但它也不起作用。有什么解决办法吗?
提前致谢。