Доступ CORS в Tomcat REST API

#javascript #angularjs #rest #tomcat #cors

#javascript #angularjs #rest #tomcat #cors

Вопрос:

У меня есть локальная установка Tomcat, запущенная на порту 8081, предоставляющая REST API. Мой веб-сервер разработки работает на порту 9000. Теперь я хочу вызвать REST из кода javascript, запущенного в браузере, используя angular $http . Очевидно, что это вызов CORS, и у меня возникла ошибка:

«В запрошенном ресурсе отсутствует заголовок ‘Access-Control-Allow-Origin’. Происхождение ‘http://localhost:9000 «следовательно, доступ к нему запрещен».

Я добавил фильтр в конфигурацию Tomcat, как предложено в документации:

 <filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
 

Это отлично работало для моих GET запросов, но теперь я хочу выполнять POST запросы, и ошибка возвращается снова. Почему так? Разве этот фильтр POST не должен также разрешать?

Ответ №1:

Вам нужно добавить некоторые параметры инициализации:

 <init-param>
  <param-name>cors.allowed.methods</param-name>
  <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers, Last-Modified</param-value>
 

Комментарии:

1. Извините, но это все еще не работает. Я использовал расширенный пример конфигурации из предоставленной вами ссылки на документацию. Это должно содержать все необходимое, но ничего…