如何在Java RESTful Web服务中实现CORS?

时间:2014-06-12 14:33:11

标签: java web-services

我是Java RESTful webservices的新手。

这是我的Java代码:

@Path("ConversionService")
public class FeetToInchAndInchToFeetConversionService {

     @GET
     @Path("/InchToFeet/{i}")
      @Produces(MediaType.TEXT_XML)
      public String convertInchToFeet(@PathParam("i") int i) {

        int inch=i;
        double feet = 0;
        feet =(double) inch/12;

        return "<InchToFeetService>"
        + "<Inch>" + inch + "</Inch>"
          + "<Feet>" + feet + "</Feet>"
         + "</InchToFeetService>";
      }

我能够运行该服务并可以看到输出。

这里我需要帮助在我的服务中实现CORS,你能告诉我如何在我的Java代码中编写CORS吗?

我们是否需要在单独的类中编写jersy过滤器,或者我们是否有可能直接在我的Java代码中包含“Access-Control-Allow-Origin”,“*”。

1 个答案:

答案 0 :(得分:1)

您只需添加上下文参数即可访问HttpServletResponse

public String convertInchToFeet(@PathParam("i") int i, @Context HttpServletResponse response) {
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
    //...

在jQuery中:

$.ajax({
    crossDomain: true,
    //...