繁体   English   中英

Angular2 Ng2文件上传CORS问题

[英]Angular2 Ng2 file Upload CORS issues

我是新手尝试angular2 我已经安装了angular2文件上传。 在这里复制了教程中的所有代码

我复制了开发人员在那里写的内容。 但我遇到这样的问题:

XMLHttpRequest无法加载http:// localhost:8080 / citizen / upload 对预检请求的响应未通过访问控制检查:当请求的凭据模式为“包含”时,响应中“访问控制 - 允许 - 凭证”标头的值为“必须为'真'”。 因此不允许来源' http:// localhost:4200 '访问。 XMLHttpRequest发起的请求的凭据模式由withCredentials属性控制。

我的SpringBoot有我的CORS过滤器

@Component
public class SimpleCorsFilter implements Filter {
     @Override
     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "http://localhost:4200");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Authorization, Content-Type, Accept, enctype");
        chain.doFilter(req, res);
    }

在添加angular2文件上传代码之前,它仍然可以。 怎么解决?

当发生跨源请求时,它首先发送HTTP option以检查服务器是否允许跨源请求。 如果您使用的是Spring安全性,请检查您是否允许, HTTP Option无需验证。 如果它在那里添加这样的过滤器

 protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
    httpServletResponse.addHeader("Access-Control-Allow-Origin", "http://localhost:4200");
    httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
    httpServletResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
    httpServletResponse.addHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, X-Codingpedia, Authorization");
    httpServletResponse.addHeader("access-control-expose-headers", "Authorization");

    if (!"OPTIONS".equals(httpServletRequest.getMethod())) {
        filterChain.doFilter(httpServletRequest, httpServletResponse);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM