【发布时间】: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