【发布时间】:2018-12-13 02:21:02
【问题描述】:
我正在尝试在 jasperserver 中启用 CORS 策略。
我正在使用 Angular HTTPClient 调用来自 jasperserver 的 API。
到目前为止我已经尝试过的事情。
修改 apache-tomcat apache-tomcat\conf\web.xml 文件 并在下面添加代码。
<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>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,Accept,Authorization,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>
来自apache-tomcat 网站。
也试过修改jasperserver\WEB-INF\Web.xml文件 并在下面添加代码
<filter>
<filter-name>CorsFilter2</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>
仍然没有运气并遇到此错误。
【问题讨论】:
-
这里有多个点。首先,您可以尝试将
cors.allowed.methods添加到您的过滤器中。可能需要它,因为根据规范 CORS 以OPTIONS请求开头。其次,从<url-pattern>中删除空格,如第一个配置中所述。第三,您尝试了一个新配置,但似乎您从未更改<url-pattern>以使用您的CorsFilter2,它仍然映射到CorsFilter。最后,如果响应的标头包含必要的 Access-Control-* 标头,请尝试直接从某个 REST 客户端访问您的 8082 端口。 -
@Siddharth 你说的我试过了,还是不行
标签: apache tomcat cors jasperserver