1

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

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

编辑:我创建了一个过滤器来处理 OPTIONS 请求。现在,我将Allow标头添加为GET、POST、DELETE、PUT、OPTIONS、HEAD作为值,并以状态码200进行响应。但它仍然显示404。

4

1 回答 1

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", "*"); 前。写完整个标题后,它开始工作。

于 2016-01-11T06:07:24.293 回答