【问题标题】:CORS Access on Tomcat REST APITomcat REST API 上的 CORS 访问
【发布时间】:2017-02-26 12:37:01
【问题描述】:

我有一个在端口 8081 上运行的本地 Tomcat 安装,它公开了一个 REST API。我的开发 Web 服务器在端口 9000 上运行。现在我想使用 Angular 的 $http 从浏览器中运行的 javascript 代码调用 REST。这显然是一个 CORS 调用,我遇到了错误:

“请求中没有“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:9000” 访问。”

我按照文档的建议在 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>

这对我的GET 请求非常有效,但现在我想执行POST 请求并且错误又回来了。为什么这样?该过滤器不应该也允许POST 吗?

【问题讨论】:

    标签: javascript angularjs rest tomcat cors


    【解决方案1】:

    你需要添加一些init params:

    <init-param>
      <param-name>cors.allowed.methods</param-name>
      <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
    </init-param>
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers, Last-Modified</param-value>
    

    【讨论】:

    • 抱歉,它仍然无法正常工作。我使用了您提供的文档链接中的高级配置示例。这应该包含所有必要的东西,但什么都没有......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2018-05-19
    • 2021-09-19
    • 2021-01-23
    • 2018-07-16
    • 2020-05-06
    • 2015-06-14
    相关资源
    最近更新 更多