$(".submit").click(function (e) { e.preventDefault(); $.ajax({ async: true, crossDomain: true, method: "post", data: $("form[name=something]").serialize(), url: "myUrl", success: function (res) { console.log(res); }, error: function (res) { console.log(res.status); }, }); });y mi controlador spring mvc como
@RestController @CrossOrigin(origins = {"*"}, methods = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE}) public class AppController { ... ... ... }Si se envía (obtiene) la solicitud, funciona correctamente, pero cuando envío (publica) obtuvo una excepción: el acceso a XMLHttpRequest en (servidor remoto) desde el origen (localhost) ha sido bloqueado por la política de CORS: No 'Access-Control-Allow-Origin ' el encabezado está presente en el recurso solicitado.
Asegúrese de que la política CORS esté abierta en el dominio remoto. si no, obtendrá el mismo error. Además, si usa Spring y creó o extendió un archivo WebSecurityConfigurerAdapter, puede configurar el CORS redefiniendo el bean CorsConfigurationSource en el archivo WebSecurityConfig. solo asegúrese de agregar su URL localhost en los orígenes permitidos.
Algo como a continuación:
@Bean public CorsConfigurationSource corsConfigurationSource() { final CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(ImmutableList.of("..your localhost url..")); final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); return source; }