2015-06-27 41 views
1

我有一个非常简单的Java RESTful Web服务,它包含GET和POST请求的两种方法。我在OpenShift平台上使用Jboss应用服务器7。如何使用JBoss AS上的java restful web服务启用CORS

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

Web服务运行没有问题。我可以在同一应用程序中使用来自脚本的Ajax,但我需要从其他域中的其他应用程序使用它。

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

回答

0

这个头添加到您的回应:

Access-Control-Allow-Origin: * 

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

或者,您可以添加jetty-servlets.jar库作为依赖,这个过滤器添加到您的网站.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服务什么库的详细信息。

+0

我知道我需要将该标题添加到回复中,我只是不知道如何。我尝试将jetty-servlets作为maven依赖项添加到pom.xml中,并将过滤器添加到web.xml中,但它不起作用。它支持JBoss AS吗? – Abdelrahman0101

+0

我刚刚使用Netbeans在默认情况下不包含web.xml文件的Maven Web应用程序中创建Web服务。我使用javax.ws.rs包中的注释。 – Abdelrahman0101

+0

我将服务器更改为wildfly 8,它工作正常,非常感谢您的帮助 – Abdelrahman0101