当前位置: 首页 > 知识库问答 >
问题:

如何启用CORS tomcat 8.5过滤器访问静态文件?

佘缪文
2023-03-14

我读了很多类似的问题,但没有一个解决方案对我有效,所以我发布了另一个:/我必须从我的angular客户端获得一些Tomcat 8.5.37服务器上的pdf文件,但我经常被Cors策略阻止。

如何正确添加Cosr标头?

<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>

我的客户端应用程序是一个角7应用程序,我正在使用“NG2-PDF-Viewer”模块显示pdf文件。根据模块文档,它对指定的URL进行HTTP get调用,以获取文件并显示它。根据,我可以在我的Chrome控制台中看到get调用,会话“网络”。在“Response headers”会话中,我可以看到一些标题,如“Content-Type”和“Content-Lenght”具有正确的值,但所有其他标准Cors标题(Access-Control-Allow-Origin,Access-Control-Allow-Methods ECC...)都失踪了。

如果我使用Chrome扩展来模拟Cors头,我正确地得到pdf文件和组件按预期工作,但没有这个扩展,我得到Cors阻塞。

我把Cors过滤器放在web.xml文件中,放在“内置过滤器定义”会话的第一个位置,但它不起作用。根据Tomcat的官方文档,我添加了许多 ,但都不起作用。我尝试使用自定义Cors过滤器,使用HttpServletRequestHttpServletResponse实现,并使用ContainerRequestContextContainerResponseNectext隐写,但都不起作用。

当我写“http://localhost:8080/web-docs/file.pdf”时,我的浏览器会显示它。当我试图从我的客户那里获得文件时,我被CORS阻止了。

我如何设置一个好的Cors过滤器来访问我的应用程序中的文件?我哪里做错了?

共有1个答案

农明辉
2023-03-14

增加如下,

<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>
 类似资料:
  • 我有一个启动火花工人的java应用程序:

  • 问题内容: 在Spring JPA + Hibernate环境中,我需要启用Hibernate实体过滤器。因此,我应该可以访问Hibernate Session对象,但是我正在使用EntityManagerFactory和Spring JPA魔术。有任何会话拦截器,因此每当Spring创建一个新的会话时,我都可以在其上调用enableFilters()方法吗? 问题答案: 我最终得到了AOP解决方

  • 使用glTexParamteri配置OpenGL时(GL_Texture_2D、GL_Texture_MAG_FILTER等)和glTexParamteri(GL_纹理_2D,GL_纹理_MIN_过滤器,…)在使用纹理(…)访问着色器中的纹理时,OpenGL如何决定使用哪个过滤器? 我唯一的猜测是它正在计算像素足迹,但由于您可以在片段或顶点着色器中访问纹理,它无法知道在哪个基元上投影了什么纹理。

  • 我正在使用Servlet过滤器来实施访问控制。扩展it以测试用户角色的最佳方式是什么?我能想出几种解决方案,但没有一种是优雅的。 编写角色测试并不难。但是如何将角色传递给给定url的过滤器? e、 在网络上。xml 谢谢

  • 在服务器里某个文件夹里有许多中文名称的文件, 现在需要访问这些文件: 127.0.0.1:8080/test/周星驰.pdf,地址是举例的,test是文件夹名称 但是页面跳出404 notFound。 通过xftp登录服务器看到的文件名称是正常的中文名称, xshell登录看到的文件名称是带问号的乱码名称, 如果是英文名称或数字名称可以正常访问。 除了将这些文件改成英文名称, 这种情况该怎么才能访