将标头添加到Tomcat7中的错误页面

时间:2012-03-23 02:50:36

标签: jsp rest tomcat cross-domain tomcat7

我们正在Tomcat中设计一个REST应用程序,它应该是跨域可访问的。因此,对于所有响应,我们都包含着名的CORS标题:

Access-Control-Allow-Origin: *

但是,由于它是REST服务,因此服务器有时会返回不是200 OK的HTTP响应。例如。 400,403,404,405。我们遇到的一个问题是,当前这些响应不包含CORS头,因此不能由跨域Web客户端解释。事实证明这是一个常见问题:http://www.w3.org/wiki/Talk:CORS_Enabled

在Tomcat中使用自定义正文,标题等返回非200响应的好方法是什么,以便我们可以设置CORS标题?

1 个答案:

答案 0 :(得分:1)

我们的解决方案是DYI:捕获所有异常并调用一个实用程序方法,该方法直接写入servlet的HTTPServletResponse,而正文是Exception的消息

HTTPServletResponse对象上,您可以指定所需的一切,包括HTTP状态代码(我猜您使用400作为常规),以及所有必需的头文件,包括CORS头文件。