HTTPS 请求:CORS 错误,但我仍然获得数据

HTTPS Request : CORS error but I still get data

我正在向私有 API(托管的 Itop)发出 HTTPS 请求,我得到了响应,但出现 CORS Multiple Origin Not Allow 错误,因此我的 JavaScript 程序无法使用回复内容.
我应该有 CORS 授权

请求是 POST,是用 fetch 发出的,之前没有发出预检 (OPTIONS) 请求(fetch 单独为我的另一个 GET API 请求但没有在这里)

Firefox 的某些服务器响应时间也很长(~2 秒),但似乎没有任何改变

firefox 是识别此问题的最佳浏览器, 您可以按照此路径解决此问题。 当您从前端发送请求时,响应将来自后端。但不允许浏览器访问 javascript。这是 cors 错误。

1.open 你的后端,然后创建一个包调用 CorsFilter。 2.然后创建一个过滤servlet 3. 粘贴此代码

CorsFilter

    @WebFilter(filterName = "CorsFilter", urlPatterns = "/*")
public class CorsFilter extends HttpFilter {
    @Override
    protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain  chain) throws IOException, ServletException {
        String origin = req.getHeader("Origin");
        if (origin != null && origin.toLowerCase().contains(getServletContext().getInitParameter("origin"))) {
            res.setHeader("Access-Control-Allow-Origin", origin);
            res.setHeader("Access-Control-Allow-Headers", "Content-Type");
            res.setHeader("Access-Control-Expose-Headers", "Content-Type");
            if (req.getMethod().equals("OPTIONS")) {
                res.setHeader("Access-Control-Allow-Methods", "OPTIONS, GET, PUT, POST, DELETE, HEAD");
            }
        }
        chain.doFilter(req, res);
    }
}

不允许在同一个响应中发送多个 Access-Control-Allow-Origin header 或一个 header 中的多个来源。在评论中,您在一个回复中描述了两个相同的 Access-Control-Allow-Origin header。甚至不允许两个相同的来源。后台代码中去掉一个header.