Angular 2 Spring Boot登录CORS问题

穆罕默德·米西尔(Muhammed Misir)

我正在尝试使用Spring Boot后端和Angular 2前端开发应用程序。

实际上,当我从Spring访问mvc登录页面时,我遇到了连接问题。

我遇到以下问题:

( 安慰 )

在此处输入图片说明

(角度2代码) 在此处输入图片说明

弹簧码 在此处输入图片说明

在此处输入图片说明

我已经为前端端口设置了全局Cors配置。我的请求返回的响应状态为200。但是我无法访问响应,因为我在控制台中收到错误消息。

Spring dosnt有错误。

海饼干

后端中添加了您需要了解Cors配置的第一件事。您不需要随Angular2 App的每个请求一起发送cors标头。知道这一点,可以通过在spring安全配置类中添加全局CORS配置来轻松解决此问题。

首先,您需要创建一个filter bean:

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyCorsFilter implements Filter{

public MyCorsFilter () {
    super();
}

@Override
public final void doFilter(final ServletRequest req, final ServletResponse res, final FilterChain chain) throws IOException, ServletException {
    final HttpServletResponse response = (HttpServletResponse) res;
    response.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");

    // without this header jquery.ajax calls returns 401 even after successful login and SSESSIONID being succesfully stored.
    response.setHeader("Access-Control-Allow-Credentials", "true");

    response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "X-Requested-With, Authorization, Origin, Content-Type, Version");
    response.setHeader("Access-Control-Expose-Headers", "X-Requested-With, Authorization, Origin, Content-Type");

    final HttpServletRequest request = (HttpServletRequest) req;
    if (!request.getMethod().equals("OPTIONS")) {
        chain.doFilter(req, res);
    } else {
        // do not continue with filter chain for options requests
    }
}

@Override
public void destroy() {

} 

@Override
public void init(FilterConfig filterConfig) throws ServletException {       
}
}

步骤2:在您的spring安全配置类中添加:

@Autowired
private MyCorsFilter myCorsFilter;


//CORS
http.addFilterBefore(myCorsFilter, ChannelProcessingFilter.class);

编辑:此配置假定您有在localhost:3000运行的angular2应用程序

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章