sha*_*lic 4 rest jersey cross-domain cors
我想用CORS(跨源资源共享)制作跨域REST Web服务.我正在使用Jersey Libraries来提供服务.
我需要知道
从服务器端的角度来看,我需要做哪些代码/配置更改?
如何从HTML5/js调用此服务.
谢谢
您可以在enable-cors.org找到服务器端配置的所有信息.
没有必要更改任何代码客户端,但我建议在使用之前检查CORSP的浏览器功能.可以在此处找到测试代码.
小智 5
我选择通过在Jersey容器级别提供服务器CORS响应来解决此问题.这可能为某些应用程序提供更多便利,因为它可以应用来自容器的所有响应而无需修改资源处理代码.
首先必须创建一个容器响应过滤器,它将注入适当的头.例如,对于任何响应,指示Access-Control-Allow-Origin:*的容器:
class CORSFilter implements ContainerResponseFilter {
@Override
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
然后必须将过滤器添加到Jersey响应过滤器链中.这可以通过用于应用程序的资源配置来完成.
...
DefaultResourceConfig rc = new ClasspathResourceConfig();
rc.getContainerResponseFilters().add(new CORSFilter());
// now create a simple lightweight server using this resource config.
HttpServer server = HttpServerFactory.create(uri,rc);
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13415 次 |
| 最近记录: |