【问题标题】:How to enable CORS with a java restful web service on JBoss AS如何在 JBoss AS 上使用 java RESTful Web 服务启用 CORS
【发布时间】:2015-09-14 00:54:23
【问题描述】:

我有一个非常简单的 Java RESTful Web 服务,其中包括 GET 和 POST 请求的两种方法。我在 OpenShift 平台上使用 Jboss Application server 7。

我需要让 JavaScript 客户端通过发送或接收 JSON 数据来使用 Ajax 使用服务。

Web 服务运行正常。我可以使用 Ajax 从同一应用程序的脚本中使用它,但我需要从其他域的其他应用程序中使用它。

如何在我的 REST 端点上启用跨域请求共享 (CORS)?

【问题讨论】:

    标签: java ajax web-services jboss cors


    【解决方案1】:

    将此标头添加到您的响应中:

    Access-Control-Allow-Origin: *
    

    例如,对于 servlet,您可以这样做:

    或者,您可以添加 jetty-servlets.jar 库作为依赖项并将此过滤器添加到您的 web.xml。这将允许 CORS 用于您的所有 Web 服务。

    <filter>
        <filter-name>cross-origin</filter-name>
        <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>cross-origin</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    如果您只需要注释特定的服务,首先我们需要更多关于您使用什么库来实现 RESTful 服务的信息。

    【讨论】:

    • 我知道我需要将该标头添加到响应中,我只是不知道如何。我尝试将 jetty-servlet 作为 maven 依赖项添加到 pom.xml,并将过滤器添加到 web.xml 但它不起作用。支持 JBoss AS 吗?
    • 我只是使用 Netbeans 在一个默认不包含 web.xml 文件的 Maven Web 应用程序中创建 Web 服务。我正在使用 javax.ws.rs 包中的注释。
    • 我把服务器换成了wildfly 8,成功了,非常感谢你的帮助
    猜你喜欢
    • 2017-07-01
    • 2019-06-11
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2018-01-31
    • 2021-08-07
    相关资源
    最近更新 更多