【问题标题】:Can't connect to web service in Java due to CORS由于 CORS,无法连接到 Java 中的 Web 服务
【发布时间】:2013-08-13 17:15:35
【问题描述】:

我已经创建了一个这样的过滤器,并在 web.xml 中对其进行了配置。我设法使用简单的 GET 方法检索数据,但是在尝试发布新资源时失败。我正在使用 AngularJS,我在控制台中得到了这个。我还没有完全理解 CORS 是什么,但从我读到的内容来看,似乎有一个“飞行前”请求(OPTIONS 方法?)。我不知道我错过了什么,我该如何解决?这是我得到的错误:

Origin http://localhost is not allowed by Access-Control-Allow-Origin.

代码:

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    final HttpServletResponse httpResponse = (HttpServletResponse) response;
    httpResponse.addHeader("Access-Control-Allow-Origin", "*");
    httpResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
    httpResponse.addHeader("Access-Control-Allow-Headers", "Authorization, X-Requested-With, Content-Type");

    chain.doFilter(request, response);
}

【问题讨论】:

  • 您为什么要发布到不同的域?您可以设置它,但这看起来是个错误。 localhost 是一个非常奇怪的发帖域。
  • JBoss 端口 8080,Apache Web 服务器端口 80。
  • 你使用的是$http还是$resource?
  • @DeividiCavarzan 目前是 $http,但如果我也有的话我可以改变吗?

标签: java javascript jakarta-ee angularjs


【解决方案1】:

您必须在 web.xml 中添加一些设置。这是一个可以帮助你的链接http://software.dzhuvinov.com/cors-filter-installation.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2017-05-31
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多