我们正在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标题?
答案 0 :(得分:1)
我们的解决方案是DYI:捕获所有异常并调用一个实用程序方法,该方法直接写入servlet的HTTPServletResponse
,而正文是Exception
的消息
在HTTPServletResponse
对象上,您可以指定所需的一切,包括HTTP状态代码(我猜您使用400作为常规),以及所有必需的头文件,包括CORS头文件。