SpringBoot允许跨域无效原因

关键F12看浏览器日志有没有Response to preflight request doesn't pass access control check,没有就说明访问路径错了

代码语言:javascript
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**

  • 允许跨域
  • 解决浏览器端如下报错:
  • <br>Access to XMLHttpRequest at 'http://localhost:8081/Ass/login'
  • <br>from origin 'http://localhost:8080' has been blocked by CORS policy:
  • <br>Response to preflight request doesn't pass access control check:
  • <br>No 'Access-Control-Allow-Origin' header is present on the requested resource.
  • <p>CORS支持跨域配置不生效且报的比上面的少了一行是因为路径错误(例如下面的少了Ass)
  • <br>Access to XMLHttpRequest at 'http://localhost:8081/list'
  • <br>from origin 'http://localhost:8080' has been blocked by CORS policy:
  • <br>No 'Access-Control-Allow-Origin' header is present on the requested resource.
    /
    @Configuration
    public class CorsConfig {
    @Bean
    public CorsFilter corsFilter() {
    final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    final CorsConfiguration configuration = new CorsConfiguration();
    // 是否允许请求带有验证信息
    configuration.setAllowCredentials(true);
    // 允许访问的客户端域名
    configuration.addAllowedOrigin("
    ");
    // 允许服务端访问的客户端请求头
    configuration.addAllowedHeader("");
    // 允许访问的方法名,GET POST等
    configuration.addAllowedMethod("
    ");
    source.registerCorsConfiguration("/**", configuration);
    return new CorsFilter(source);
    }
    }
代码语言:javascript
复制
  // 携带 cookie 以便 session 生效
axios.defaults.withCredentials=true;