【发布时间】:2016-10-01 13:27:16
【问题描述】:
我有一个非常基本的问题。
我有一个应用程序www.myapp1.com 托管在tomcat 服务器上。它依次调用托管在 apache 服务器上的 myapis.com/api1 上的 api。
在加载页面时,它会中断说明 -
XMLHttpRequest 无法加载 myapis.com/api1。对预检的响应 请求未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此,不允许访问 Origin 'www.myapp1.com'。这 响应的 HTTP 状态代码为 403。
我知道我必须启用 CORS。我的问题是我在哪个服务器上启用 CORS?应该是www.myapp1.com 还是myapis.com/api1?
我尝试通过将最小过滤器(如下)添加到 /config/web.xml 文件并重新启动服务器来在 www.myapp1.com 上启用 CORS,这是一个 tomcat7.0.59 服务器。但是,它不起作用。我还需要添加/配置什么吗?
<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>
url-pattern 中的通配符会导致问题吗?我需要做些什么来设置过滤器类吗?
我正在使用 chrome 进行测试。 请帮忙。
【问题讨论】: