简体   繁体   English

泽西岛,宁静的网络服务,跨域访问拒绝

[英]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-TypeAccess-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM