#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. Извините, но это все еще не работает. Я использовал расширенный пример конфигурации из предоставленной вами ссылки на документацию. Это должно содержать все необходимое, но ничего…