【发布时间】:2010-09-08 05:20:18
【问题描述】:
我正在我的 Application_Error 处理程序中实现 HttpRequestValidationException,如果可能,我想显示一条自定义消息。
现在,我正在考虑 StatusCode。在我当前的示例中,它发送 200,我认为不应该这样做。我想改为发送(恕我直言)更合适的 400 Bad Request。但是,与此同时,我想使用 Response.Write 输入自定义消息。 Firefox 可以正常显示,但 IE7 给了我默认无用的 Internet Explorer 错误页面。
一方面,我猜 Internet Explorer 只是假设所有内容 200 根本没有任何“好”内容,而这里的 RFC is not really clear。
所以我只是想知道,是否为由 HttpRequestValidationException 引起的错误页面发送 HTTP 200 是否良好?有没有好的替代品?
【问题讨论】:
-
谢谢!我的解决方案:我创建了一个 >512 字节的 Error.aspx,但 Global.asax 将 StatusCode 设置为 400,然后执行 Server.Transfer 而不是 Response.Redirect。适用于 AJAX 和 Internet Explorer。
-
补充一点:通常,Response.Redirect 也是一个可行的解决方案。但是,如果您使用 ASP.net AJAX,您也会被重定向。 Server.Transfer 确实允许您停留在 AJAX 请求的当前页面上并处理 JavaScript 中的错误。请参阅我的 HttpRequestValidationException 问题。
标签: asp.net http internet-explorer-7