详解springboot设置cors跨域请求的两种方式
程序员文章站
2024-03-05 13:12:12
1、第一种:
public class corsfilter extends onceperrequestfilter {
static final s...
1、第一种:
public class corsfilter extends onceperrequestfilter { static final string origin = "origin"; protected void dofilterinternal( httpservletrequest request, httpservletresponse response, filterchain filterchain) throws servletexception, ioexception { string origin = request.getheader(origin); response.setheader("access-control-allow-origin", "*");//* or origin as u prefer response.setheader("access-control-allow-credentials", "true"); response.setheader("access-control-allow-methods", "put, post, get, options, delete"); response.setheader("access-control-max-age", "3600"); response.setheader("access-control-allow-headers", "content-type, authorization"); if (request.getmethod().equals("options")) response.setstatus(httpservletresponse.sc_ok); else filterchain.dofilter(request, response); } } @bean public corsfilter corsfilter() throws exception { return new corsfilter(); } http .addfilterbefore(corsfilter(), usernamepasswordauthenticationfilter.class) .addfilterbefore(authenticationtokenfilterbean(), usernamepasswordauthenticationfilter.class) .headers() .cachecontrol();
2、第二种:
@configuration public class corsconfig { @bean public filterregistrationbean corsfilter() { urlbasedcorsconfigurationsource source = new urlbasedcorsconfigurationsource(); corsconfiguration config = new corsconfiguration(); config.setallowcredentials(true); // 设置你要允许的网站域名,如果全允许则设为 * config.addallowedorigin("http://localhost:4200"); // 如果要限制 header 或 method 请自行更改 config.addallowedheader("*"); config.addallowedmethod("*"); source.registercorsconfiguration("/**", config); filterregistrationbean bean = new filterregistrationbean(new corsfilter(source)); // 这个顺序很重要哦,为避免麻烦请设置在最前 bean.setorder(0); return bean; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 浅谈Android中视图动画的属性与使用