Solución:
debe deshabilitar la protección csrf porque está habilitada por defecto en Spring Security: aquí puede ver el código que permite el origen de cors.
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception{
http.cors().and().csrf().disable();
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("*"));
configuration.setAllowedHeaders(Arrays.asList("*"));
configuration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
Posibles Causas:
- Las solicitudes realizadas desde el cartero son diferentes a la realizada desde el móvil (uri, método, encabezados)
- Simbolo no valido
-
CORS (lea algo al respecto, google está lleno de artículos) agregue la anotación @CrossOrigin a su controlador.
- La aplicación móvil está haciendo una solicitud de OPCIÓN antes de realizar la POST y usted bloquea las solicitudes de OPCIÓN. Si también del cartero se bloquean las solicitudes de OPCIÓN, agregue la propiedad spring.mvc.dispatch-options-request = true. Además, en caso de que esté utilizando Spring Security, también debe permitir explícitamente las solicitudes de OPCIÓN.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)