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);
}
}
Está bien correr localmente, siento que todo va bien y estoy muy feliz
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
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.
Como se muestra abajo
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
2. Response.reset (); Sin comentarios, y la configuración es la siguiente