【发布时间】:2016-11-16 05:13:14
【问题描述】:
感谢任何帮助。
我在新部署的 Tomcat 8.0.30 上遇到了 CORS 问题。我不断收到以下错误。我使用 127.0.0.1 作为 API 服务器地址,而 192.168.1.100 是我的 HTTP 服务器的地址。
请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin '_http://192.168.1.100:8999'。响应的 HTTP 状态代码为 403。
通读整个 Tomcat 文档,在 tomcat web.xml 以及项目 web.xml 下添加了 cors 过滤器,但这里没有任何魔法发生,仍然出现相同的错误。使用 init-param 尝试了最小和高级,同样的错误。
我使用 Spring 4 作为我的 rest api 框架。项目编码部分还需要配置吗?
到目前为止,我已经完成了以下步骤:
- 在 web.xml 下添加 cors 过滤器,根据文档进行最小配置,不起作用
- 在 web.xml 下添加 cors 过滤器,完整配置,效果不佳。
- 尝试使用来自 http://software.dzhuvinov.com/cors-filter.html 的 cors 过滤器,但仍然无法正常工作
有什么建议吗?
添加 web.xml 配置 我尝试将 cors.allowed.origins 更改为 *,更改为 127.0.0.1,192.168.1.100,都不起作用, 删除凭据和 maxage
<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://192.168.1.100</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,Authorization</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>
由 Vishal 建议,将 tomcat 版本从 8.0 更改为 8.5,仍然是同样的问题
XMLHttpRequest cannot load http://127.0.0.1:8080/leyutech-framework-gurunwanfeng/api/ad/getAdInfoByAdType.html?adType=0. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.1.100:8080' is therefore not allowed access. The response had HTTP status code 403.
【问题讨论】:
-
至少提供你添加到web.xml中的配置。我可以向您保证 Tomcat 文档是正确的,我自己使用过。但是很容易错过配置。
-
嗨 Gimby 和 Azim,是的,我从文档中添加了最低配置和高级配置,它们都不起作用
-
@ShawnZhou:我想知道您使用的 tomcat 版本是否有问题。我相信我们过去也有类似的东西,但我不记得我们使用的是 Tomcat 还是 JBoss,并且那个特定版本有问题迫使我们升级
-
@Vishal Jumani,我也尝试了 8.5.3 版本,但仍然遇到同样的问题。