- 我尝试使用eclipse插件开发和使用jax-rs制作模块化应用程序
- 我想访问jetty服务器创建的事件源并及时翻译每个事件。
- 当我尝试访问该事件时,我在运行我的客户端html 5页面的firefox中收到此错误:
跨源请求已阻止:同源策略禁止在http://localhost:9050/services/events读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin')。
- 我知道我必须配置服务器,但我没有.htaccess而且没有web-inf目录。
- 有没有使用eclipse在vm参数中声明这个文件?
- 还有其他办法吗?
- 我没有WEB-INF目录,我不知道它是否支持这种插件开发方法。
- 我没有主要功能我只有捆绑(激活器等),我没有主要功能。
我也有manifest.mf文件
接受任何帮助。谢谢!
答案 0 :(得分:1)
尝试实施一个响应过滤器,它会将您需要的标头添加到响应中。
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
// the wildcard char `*` will allow any origin
responseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
// add anything and everything you need
responseContext.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type");
responseContext.getHeaders().add("Access-Control-Allow-Credentials", "true");
responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
// etc
}
}
不要忘记注册。