Tomcat API 无法从 angular 访问

Tomcat API unreachable from angular

从'localhost'移动到在线服务器后,我遇到了这个错误 403 因为 CORS。

api 可以从 url 访问并且它有效,但是当我用我的 angular 打字稿页面,它不起作用,给我这个错误:

Failed to load resource: the server responded with a status of 403 ()

Access to XMLHttpRequest at 'http://...:8080/bet365/elencoEventi/2019-02-20' from origin 'http://127.0.0.1:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我尝试在 tomcat 中添加过滤器,如下所示:

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

但它仍然给我 403 错误。

如果您使用的是最新版本的 Tomcat,则需要配置 CORS 策略。

http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter

过滤器内置于Tomcat 7+

根据文档,您的配置启用了过滤器但没有放宽跨源策略。至少,您需要添加一个 cors.allowed.origins 初始化参数,如所述。

试试这个配置:

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