【问题标题】:Allow Multiple Cross Origin in Spring Boot back end /Angularjs Front End application?在 Spring Boot 后端/Angularjs 前端应用程序中允许多个跨域?
【发布时间】:2017-11-22 16:02:21
【问题描述】:

我在当前工作的 Web 应用程序中收到以下错误,这里是 ErrorCode:

XMLHttpRequest 无法加载 http://rev-final.staging.cashu.com:8080/merchants/signup。 “Access-Control-Allow-Origin”标头包含多个值“*、*”,但只允许一个。 Origin 'http://localhost:3000' 因此不允许访问。

那么我能做些什么来解决这样的问题,并且解决方案必须来自角度侧或弹簧侧,因为我在寻找解决方案时都在寻找配置

【问题讨论】:

    标签: angular spring-boot configuration


    【解决方案1】:

    只需在您的组件扫描包中添加以下类,然后一切都将在 spring 处理。请参考here 以获取更多参考..

    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Component;
    
    @Component
    public class SimpleCORSFilter implements Filter {
    
    private final Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class);
    
    public SimpleCORSFilter() {
    log.info("SimpleCORSFilter init");
    }
    
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    
    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
    
    chain.doFilter(req, res);
    }
    
    @Override
    public void init(FilterConfig filterConfig) {
    }
    
    @Override
    public void destroy() {
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 1970-01-01
      • 2016-11-05
      • 2022-07-12
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 2018-02-17
      相关资源
      最近更新 更多