[英]Jersey, restful web service, cross domain access deny
I use netbeans to create restful web service and got the error of "cross domain access deny" 我使用netbeans创建宁静的Web服务,并得到“跨域访问拒绝”的错误
I have add the "cross origin resource filter" 我添加了“跨来源资源过滤器”
following is my code. 以下是我的代码。
@Provider
public class CrossOriginResourceSharingFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext response) {
response.getHeaders().putSingle("Access-Control-Allow-Origin", "*");
response.getHeaders().putSingle("Access-Control-Allow-Methods", "OPTIONS, GET, POST, PUT, DELETE");
response.getHeaders().putSingle("Access-Control-Allow-Headers", "Content-Type");
}
}
and 和
@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<>();
addRestResourceClasses(resources);
return resources;
}
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(WebService.CategoryFacadeREST.class);
resources.add(WebService.CrossOriginResourceSharingFilter.class);
resources.add(WebService.ProductFacadeREST.class);
resources.add(WebService.ReviewFacadeREST.class);
}
}
I assume the problem is, that only the Content-Type
header is allowed in Access-Control-Allow-Headers
. 我假设问题是,在Access-Control-Allow-Headers
中只允许Content-Type
标Access-Control-Allow-Headers
。 Please look for a header Access-Control-Request-Headers
in the request... set the content in the Access-Control-Allow-Headers
header or try this code: 请在请求中查找标题Access-Control-Request-Headers
...在Access-Control-Allow-Headers
标头中设置内容或尝试以下代码:
String reqHead = requestContext.getHeaderString("Access-Control-Request-Headers");
if (null != reqHead && !reqHead.equals("")) {
responseHeaders.putSingle("Access-Control-Allow-Headers", reqHead);
}
In general: for security reasons you should not use wildcards and code like this in the production environment. 通常:出于安全原因,您不应在生产环境中使用通配符和此类代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.