0

我已经创建了一个这样的过滤器,并在 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);
}
4

1 回答 1

0

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

于 2013-08-12T13:25:44.580 回答