CORS не работает после того, как я скопировал экземпляр - PullRequest
0 голосов
/ 11 декабря 2018

У меня запущенный экземпляр с Tomcat 7 и Java-приложением.Я хотел сделать копию экземпляра.в Amazon я нажал «создать изображение» и запустил новый экземпляр из него.после этого я попытался поработать с новым экземпляром.когда я делаю простые запросы, это работает, но когда я пытаюсь из браузера, я получаю ошибку CORS:

Access to XMLHttpRequest at 'https://xxxxxx/getConfiguration' from origin 'http://xxxxxx:9000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

ничего не изменилось на моем сервере или в моей конфигурации интерфейса.когда я работаю со старым сервером, это работает.фильтр Cors тот же:

<filter>
    <filter-name>CORS</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>

    <init-param>
        <param-name>cors.allowOrigin</param-name>
        <param-value>*</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportsCredentials</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified, Access-Control-Request-Method,Access-Control-Request-Headers,authorization</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
    </init-param>
</filter>


<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Ответы [ 3 ]

0 голосов
/ 20 апреля 2019

Сравните имена параметров инициализации, которые вы использовали

<init-param>
    <param-name>cors.allowOrigin</param-name>
    <param-value>*</param-value>
</init-param>
<init-param>
    <param-name>cors.supportsCredentials</param-name>
    <param-value>false</param-value>
</init-param>

и справочник по конфигурации документация Tomcat 7. Вы пишете их неправильно.

Значение по умолчанию:cors.allowed.origins было изменено в мае 2018 года (для Tomcat 7.0.89, 8.5.32, 9.0.9) на адрес CVE-2018-8014 ( ошибка 62343 ).

0 голосов
/ 20 апреля 2019

Я просто использую эти зависимости и работаю со всеми методами, POST, GET и т. Д ...

    <dependency>
        <groupId>com.thetransactioncompany</groupId>
        <artifactId>java-property-utils</artifactId>
        <version>1.9.1</version>
    </dependency>

    <dependency>
        <groupId>com.thetransactioncompany</groupId>
        <artifactId>cors-filter</artifactId>
        <version>1.9.1</version>
    </dependency>

В вашем файле web.xml ниже добавьте эту конфигурацию

    <filter>
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
0 голосов
/ 18 апреля 2019

Был ли ваш javascript / html / css на одном сервере с вашим старым экземпляром?

Когда браузер выполняет какой-либо вызов API, если адрес API находится на другом сервере / домене с путем javascript, браузер проверяет CORSзаголовок API, чтобы этот сервер разрешал перекрестный запрос.В старом экземпляре все было на одном месте, поэтому делать не нужно.Но в новых случаях ваше приложение должно возвращать заголовок CORS клиенту.

Вы можете увидеть этот вопрос, чтобы узнать, как добавить заголовок CORS в ваше приложение в Tomcat:

Установить CORSзаголовок в Tomcat

...