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