第一种解决方法
import org. springframework. context. annotation. Configuration;
import org. springframework. web. servlet. config. annotation. CorsRegistry;
import org. springframework. web. servlet. config. annotation. WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings ( CorsRegistry registry) {
registry. addMapping ( "/**" )
. allowedOrigins ( "*" )
. allowedMethods ( "GET" , "HEAD" , "POST" , "PUT" , "DELETE" , "OPTIONS" )
. allowCredentials ( true )
. maxAge ( 3600 )
. allowedHeaders ( "*" ) ;
}
}
第二种解决方案
import org. springframework. context. annotation. Configuration;
import javax. servlet. *;
import javax. servlet. annotation. WebFilter;
import javax. servlet. http. HttpServletResponse;
import java. io. IOException;
@WebFilter ( filterName = "CorsFilter " )
@Configuration
public class CorsFilter implements Filter {
@Override
public void doFilter ( ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = ( HttpServletResponse) res;
response. setHeader ( "Access-Control-Allow-Origin" , "*" ) ;
response. setHeader ( "Access-Control-Allow-Credentials" , "true" ) ;
response. setHeader ( "Access-Control-Allow-Methods" , "POST, GET, PATCH, DELETE, PUT" ) ;
response. setHeader ( "Access-Control-Max-Age" , "3600" ) ;
response. setHeader ( "Access-Control-Allow-Headers" , "Origin, X-Requested-With, Content-Type, Accept" ) ;
chain. doFilter ( req, res) ;
}
}