在哪里启用cors?

Where to enable cors?

我有一个非常基本的问题。

我在 tomcat 服务器上托管了一个应用程序 www.myapp1.com。它依次调用托管在 myapis.com/api1 上的 Apache 服务器上的 API。

加载页面时,中断说明 -

XMLHttpRequest cannot load myapis.com/api1. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'www.myapp1.com' is therefore not allowed access. The response had HTTP status code 403.

我知道我必须启用 CORS。我的问题是我应该在哪个服务器上启用 CORS?应该是 www.myapp1.com 还是 myapis.com/api1?

我尝试在 www.myapp1.com 上启用 CORS,这是一个 tomcat7.0.59 服务器,方法是将最小过滤器(下方)添加到 /config/web.xml 文件中,然后重新启动服务器。但是,它不起作用。我还需要 add/configure 其他什么吗?

<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 模式中的通配符是否导致了问题?我需要做些什么来设置过滤器-class?

我正在使用 chrome 进行测试。 请帮忙。

cors.exposed.headersdefault value""。添加此参数可以解决问题。

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.exposed.headers</param-name>
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
  </init-param>
</filter>