1

我们的网站和 Web 服务托管在不同的域上。为了启用 CORS,我设置了每个请求以通过全局 asax 中的 Application_BeginRequest 标头发送带有适当域的 Access-Control-Allow-Origin 标头。

这在大多数情况下都有效,除非发生错误。当错误发生时,我们会得到标准的 ASP.Net Yellow Page of Death 以及堆栈跟踪。问题是,我附加到响应的 Access-Control-Allow-Origin 标头被删除了;并且在调试站点时,由于浏览器安全限制,我们看不到错误。

无论如何要使用 ASP.Net YPOD 发送自定义标头吗?我尝试在 Application_Error 事件处理程序中添加标头,但 CORS 标头仍然丢失。

我知道我可以完全绕过 YPOD,捕获我们的 Web 服务中发生的任何异常,并吐出自定义错误响应,但如果可能的话,我会尽量避免这种情况。

非常感谢任何建设性的意见。

4

1 回答 1

1

弄清楚了。诀窍是处理 global.asax.cs 中的 Application_EndRequest 事件,然后在此处附加 CORS 标头。

于 2013-01-11T21:53:12.140 回答