我使用updatepanel并为endRequest注册一个处理程序以捕获错误:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
在服务器上抛出异常来测试客户端。问题是在IE和FireFox中永远不会调用EndRequestHandler!它在Opera和Safari中按预期工作。
在一个包含很少控件的简单页面上,它可以在所有浏览器中按预期工作。我在Firebug中发现的是响应是Content-length:67,但是没有响应(响应的空标签)!预期的反应是
53 | error | 500 |对象引用未设置为对象的实例。|
例如。
我没有精确调试ajax库,但我看到的是有些代码运行以准备pageLoading事件(可能是因为它无法检测错误?),但是没有来自响应的updatepanels的信息和错误试图使用一个对象的updatepanels为null。该错误由try-finally块捕获。
因此,服务器(在asp.net页面中)可能会出现导致问题的内容,但我找不到它。有人能帮助我吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
最新的MS Ajax仍然存在同样的问题。
我设法解决了服务器上的问题:
protected override void OnError(EventArgs e)
{
base.OnError(e);
if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
{
Response.Clear();
Response.Write("53|error|500|Bad.|");
Response.Flush();
}
}
因此,我认为服务器端的某些内容是错误的。