我正在尝试将此 CORS 过滤器移植到 JAX-RS 2。
但是,我看不到如何从ContainerResponseContext中获取Response对象(如在旧代码中),我在ContainerResponseFilter的覆盖方法中传递。
如果有一种更优雅的方式来使用 JAX-RS 2 进行 CORS,那当然是更可取的。提前致谢。
我正在尝试将此 CORS 过滤器移植到 JAX-RS 2。
但是,我看不到如何从ContainerResponseContext中获取Response对象(如在旧代码中),我在ContainerResponseFilter的覆盖方法中传递。
如果有一种更优雅的方式来使用 JAX-RS 2 进行 CORS,那当然是更可取的。提前致谢。
三响应可直接访问为:ContainerResponseContext
@Provider
public class ResponseCorsFilter implements ContainerResponseFilter{
@Override
public void filter(ContainerRequestContext requestContext,
ContainerResponseContext responseContext) throws IOException {
responseContext.getHeaders()
.putSingle("Access-Control-Allow-Origin","*");
responseContext.getHeaders()
.putSingle("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE");
List<String> reqHead=requestContext.getHeaders()
.get("Access-Control-Request-Headers");
if(null != reqHead){
responseContext.getHeaders()
.put("Access-Control-Allow-Headers",
new ArrayList<Object>(reqHead));
}
}
}