Добавьте заголовки к страницам ошибок в Tomcat7 - PullRequest
2 голосов
/ 23 марта 2012

Мы разрабатываем REST-приложение в Tomcat, которое должно быть доступно для нескольких доменов.Поэтому для всех ответов мы включаем известный заголовок CORS:

Access-Control-Allow-Origin: *

Однако, поскольку это служба REST, сервер иногда возвращает ответы HTTP, которые не соответствуют 200 OK.Например, 400, 403, 404, 405. Одна из проблем, с которой мы сталкиваемся, состоит в том, что в настоящее время эти ответы не содержат заголовок CORS и, следовательно, не могут быть интерпретированы междоменным веб-клиентом.Оказывается, это распространенная проблема: http://www.w3.org/wiki/Talk:CORS_Enabled

Какой хороший способ в Tomcat вернуть не 200 ответов с пользовательским телом, заголовками и т. Д., Чтобы мы могли установить заголовок CORS?

1 Ответ

1 голос
/ 23 марта 2012

Наше решение DYI: перехватывать все исключения и вызывать метод Utility, который напрямую записывает сервлет HTTPServletResponse, тело которого является сообщением Exception

объекта HTTPServletResponse,Вы можете указать все, что вам нужно, в том числе код состояния HTTP (я полагаю, вы используете 400 для REST, как обычно) и все необходимые заголовки, включая заголовки CORS.

...