【发布时间】:2016-06-09 14:35:37
【问题描述】:
我正在尝试向我的 Jersey 1.8 WebService 添加一个 CORS 过滤器。
@ApplicationPath("/")
public class RESTConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<>();
set.add(CORSFilter.class);
set.add(super.getClass());
return super.getClasses(); //To change body of generated methods, choose Tools | Templates.
}
}
这是我的 CORSFilter 来自 here():
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public ContainerResponse filter(ContainerRequest request,
ContainerResponse response) {
response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
response.getHttpHeaders().add("Access-Control-Allow-Headers",
"origin, content-type, accept, authorization");
response.getHttpHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHttpHeaders().add("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
return response;
}
}
我的 Javascript-WebApp 仍然收到 CORS 错误。 查看网络流量,没有发送 CORS 标头。我在这里错过了什么?
【问题讨论】:
-
CORS 过滤器来自这里:stackoverflow.com/questions/28065963/…
-
懒得测试,但是如果你把它添加到覆盖
Set<Object> getSingletons(),而不是getClasses(),会发生什么。其次super.getClasses()什么也不返回。您应该只是返回集合。 -
肯定的。是一个错字!谢谢你。
标签: javascript java jersey cors