【问题标题】:Enabling CORS for Tomcat running in IntelliJ为在 IntelliJ 中运行的 Tomcat 启用 CORS
【发布时间】:2018-08-13 21:27:56
【问题描述】:

我正在使用 Jersey 后端 API 构建一个 Angular 项目。我遇到了一个问题,因为 CORS,我的 Web 应用程序无法使用 IntelliJ 和 Tomcat 调用在调试模式下运行的 API。如何访问在 IntelliJ 中运行的 Tomcat 实例的 CORS 标头选项。

或者这通常不是 SPA 用来与后端对话的模式?我应该以不同的方式构建我的项目吗?

【问题讨论】:

  • 我通过让我的后端支持 JSONP 和 JSON 并让我的客户端代码在看到它在 localhost 上运行时使用 JSONP 接口来解决这个问题。我希望看到更好的解决方案。

标签: angular tomcat intellij-idea jersey cors


【解决方案1】:

通过将以下内容添加到我的 web.xml 文件中,我能够让我的 Tomcat 服务器从 IntelliJ 内部运行以接受 CORS 请求。

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>*</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

IntelliJ 对我大喊大叫,说它不认识那个过滤器类。但它可以完美地编译和运行。另外值得注意的是,您绝对应该将允许来源的参数值更改为在生产中更具限制性。我允许所有来源只是因为我在本地运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 2021-11-15
    • 2021-12-16
    • 2012-11-29
    • 2017-06-24
    • 2014-04-26
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多