Tomcat apache 8 服务器(端口 - 8080)上的 Pentaho API 在通过不同的 Web 应用程序调用时会出现 COR 问题(反应 JS,端口 - 3000)

Posted

技术标签:

【中文标题】Tomcat apache 8 服务器(端口 - 8080)上的 Pentaho API 在通过不同的 Web 应用程序调用时会出现 COR 问题(反应 JS,端口 - 3000)【英文标题】:Pentaho APIs on tomcat apache 8 server(port - 8080) giving CORs issues when called through different web app(react JS, port - 3000) 【发布时间】:2021-03-05 13:06:46 【问题描述】:

我被困在一个点上,我必须调用 pentaho API 来验证来自 reactJS 应用程序的用户。两者都在我的本地机器上。到目前为止我尝试过的事情:

a) 在 reactJS 配置文件 - package.json 中添加代理。 问题 - 代码命中 localhost:3000 而不是 localhost:8080

b) 在没有安全性的情况下启动 Google chrome 并添加标题。 上面建议的链接 2 - How to allow CORS in react.js?

c) 修改 pentaho 端的 web.xml 文件并添加 cors jar 文件。 问题 - 我从 Maven 存储库下载了 cors jar 文件。添加了相应的过滤器。这些更改后服务器未启动。 链接-https://www.ease2code.com/embedding-pentaho-cde-dashboard-in-web-application/

版本 - Pentaho 8.3 和 tomcat 8

错误 - 从源“http://localhost:3000”访问“http://localhost:8080/pentaho/j_spring_security_check”的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头出现在请求的资源。

【问题讨论】:

【参考方案1】:

这终于奏效了。我们需要添加2个jar文件:

    cors-filter-2.6 java-property-utils-1.13

然后更新 webapps\pentaho\WEB-INF\web.xml 文件以读取这些 jar。

        <filter-name>CORS</filter-name>

        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>

    <init-param>

    <param-name>cors.allowOrigin</param-name>

   <!-- Update specific domains instead of giving to all -->

    <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.supportedHeaders</param-name>

    <param-value>accept, authorization, origin</param-value>

        </init-param>

 <init-param>

    <param-name>cors.supportedMethods</param-name>

            <param-value>GET, POST, HEAD, OPTIONS</param-value>

 </init-param>

    </filter>

    <filter-mapping>

        <filter-name>CORS</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

重启 pentaho 服务器。它会工作

【讨论】:

以上是关于Tomcat apache 8 服务器(端口 - 8080)上的 Pentaho API 在通过不同的 Web 应用程序调用时会出现 COR 问题(反应 JS,端口 - 3000)的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat-8.5.23 基于域名和端口的虚拟主机

tomcat部署

服务器中配置多个Tomcat

apache 80 端口 反向代理 tomcat 8080端口

Tomcat 80端口不能访问

apache tomcat 8009 端口正在使用中