Problema entre dominios de descarga de archivos SpringBoot

Déjame hablar primero de la escena:

El proyecto tiene un requisito, que es realizar uno y descargar varios archivos en un archivo comprimido .zip

 

El código está escrito y la configuración global entre dominios también está configurada, como se muestra en el siguiente código.

@Configuration
public class SimpleCORSFilter {

    @Bean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration corsConfiguration = new CorsConfiguration();
        /*是否允许请求带有验证信息*/
        corsConfiguration.setAllowCredentials(true);
        /*允许访问的客户端域名*/
        corsConfiguration.addAllowedOrigin("*");
        /*允许服务端访问的客户端请求头*/
        corsConfiguration.addAllowedHeader("*");
        /*允许访问的方法名,GET POST等*/
        corsConfiguration.addAllowedMethod("*");
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }

}

image.png

 

Está bien correr localmente, siento que todo va bien y estoy muy feliz

image.png

 

Luego publique en el servidor de prueba de la empresa

 

 

Entonces surgió el problema. Los amigos de front-end se me acercaron y me dijeron que la interfaz de descarga por lotes que escribí es entre dominios

 

Me pregunto, no, el proyecto ya ha establecido una configuración global entre dominios, por qué solo esta interfaz de descarga por lotes es entre dominios

image.png

 

Después de buscar la razón durante mucho tiempo, Du Niang también preguntó durante mucho tiempo. La mayoría de las respuestas de Du Niang fueron copiadas y copiadas, básicamente sin nutrición.

Al final, realmente no había manera. Le preguntó a la gran vaca de la empresa. Me dijo si era la interfaz que descargué en lotes y borré la configuración global de dominios cruzados.

Luego, eché un vistazo más de cerca al código y finalmente encontré la causa última del problema.

image.png

 

Como se muestra abajo

image.png

El código que se muestra arriba

response.reset (); // Este código es el culpable, borrará parte de la información de respuesta, incluida la configuración global entre dominios

Entonces la solución es: (elige uno)

1. Comente response.reset (); como se muestra en el siguiente código

image.png

2. Response.reset (); Sin comentarios, y la configuración es la siguiente

image.png

Supongo que te gusta

Origin blog.csdn.net/qq_39999478/article/details/107157324
Recomendado
Clasificación