我在Java上使用带有AppEngine的Angular.js 对于每个HTTP请求,Angular.js在实际请求之前发出OPTIONS请求,这会为我返回HTTP 404错误 谁能告诉我为什么?
在AppEngine中如何启用OPTIONS方法的配置?
编辑:我创建了一个过滤器来处理OPTIONS请求。现在,我将允许标题添加为 GET,POST,DELETE,PUT,OPTIONS,HEAD 作为值,并使用状态代码 200 进行回复。但它仍显示404。
答案 0 :(得分:1)
终于搞定了。 我写了这样的代码:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
HttpServletRequest req = (HttpServletRequest) request;
resp.setHeader("Cache-Control", "max-age=3600");
resp.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
resp.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
resp.setHeader("Access-Control-Allow-Origin", "www.myapp.com");
resp.setHeader("Access-Control-Allow-Credentials", "true");
if (req.getMethod().equals("OPTIONS")) {
resp.flushBuffer();
} else {
chain.doFilter(request, resp);
}
}
我刚写了resp.setHeader(“Access-Control-Allow-Origin”,“*”);之前。 写完整个标题后,它就开始工作了。