404 for Google AppEngine中的OPTIONS方法与Java和Angular.js

时间:2016-01-11 05:16:13

标签: java angularjs google-app-engine http-options-method

我在Java上使用带有AppEngine的Angular.js 对于每个HTTP请求,Angular.js在实际请求之前发出OPTIONS请求,这会为我返回HTTP 404错误 谁能告诉我为什么?

在AppEngine中如何启用OPTIONS方法的配置?

编辑:我创建了一个过滤器来处理OPTIONS请求。现在,我将允许标题添加为 GET,POST,DELETE,PUT,OPTIONS,HEAD 作为值,并使用状态代码 200 进行回复。但它仍显示404。

1 个答案:

答案 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”,“*”);之前。 写完整个标题后,它就开始工作了。