近来开发SpringCloud 微服务 +Vue 前后端分离项目,期间遇见了跨域问题,记录下自己解决的手段
@Slf4j
@Configuration
public class CorsFilter implements WebFilter {
@Autowired
CorsFilterConfiguration corsFilterConfiguration;
private static final String ALLOWED_EXPOSE = "*";
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
if (CorsUtils.isCorsRequest(request)) {
ServerHttpResponse response = exchange.getResponse();
String origin = request.getHeaders().getFirst(HttpHeaders.ORIGIN);
if (!allowOrigin(origin)) {
response.setStatusCode(HttpStatus.UNAUTHORIZED);
response.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
return response.writeWith(Mono.just(getFailureResponseBody(exchange, 403,