apache - Apache Tomcat 请求的资源上不存在“Access-Control-Allow-Origin”标头
问题描述
我收到以下 CORS 消息:
Access to XMLHttpRequest at 'http://localhost:8080/ottoautomaatitv2/webservice?postitoimipaikka=mikkeli'
from origin 'http://localhost:4200' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
我试图解决这个问题的方法是添加一个CORS 过滤器,但这并没有解决问题。
<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>
我可以解决这个问题的唯一方法是使用带有--user-data-dir="C:/Chrome dev session" --disable-web-security
目标的谷歌浏览器,但这对我来说并不理想。如何Access-Control-Allow-Origin
在 Apache Tomcat 上启用?
解决方案
我access-control-allow-origin
通过向 Tomcat 的 web.xml 添加一个 CORS 过滤器以及一些属性来修复 Angular 应用程序给出的标题错误。
<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>http://localhost:4200</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,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>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
推荐阅读
- excel - 复制连接列并粘贴两次
- java - 规范对象即使在创建之后也不包含任何标准
- c# - 在 C# 中用二维数组属性封装一维数组字段
- c# - 创建上下文菜单,如桌面上下文菜单 C# Winform
- c# - 从 Windows 服务卸载软件 - 为什么我不能从 Windows 服务调用 MSIEXE.EXE
- amazon-web-services - CloudFormation 抱怨 changeSet [InvalidChangeBatch]
- typescript - 将“as const”对象转换为更通用的类型
- wpf - 覆盖 MaterialDesign 复选框样式
- python - 我想在主页显示客户电话号码和硬币
- python - 将列中的值提取到新列