none
Consumir Web Service Rest RRS feed

  • Pregunta

  • Hola a todos!

    Quería pedir ayuda en un tema que tengo, para consumir un webservice Rest que esta implementa seguridad Cross Site Request Forgery.

    Estoy intentando consumir el webservice por medio de JQuery dentro de un aspx con el siguiente código:

            <script type="text/javascript">
                $(document).ready(function () {
    
                    $.ajax({ 
                    	url: 'https://ejemplo.url.mx/validacionelectronica/restful/kmis/solicitud/add',
                    	data: { "folioSol": 02, "idTramite": 511 },
                    	type: "POST",
                    	dataType: 'json',
                    	xhrfields: {
                    		withcredentials: true
                    	},
                    	crossdomain: true,
                    	beforeSend: function(xhr) {
                    		alert('beforeSend');
                    		var cookietoSet = xhr.getResponseHeader('XSRF-TOKEN');
                    	},
                    	success: function(xhr){
                    	alert('success');
                    	},
                    	error: function (xhr) {
                    		 alert(xhr.responseText + "Error");
                    	}
                    });
    
                });
            </script>

    Pero mis peticiones son fallidas ya que en la consola del browser me regresa estos errores

    POST https://ejemplo.url.mx/validacionelectronica/restful/kmis/solicitud/add 403 (Forbidden)

    XMLHttpRequest cannot load https://ejemplo.url.mx/validacionelectronica/restful/kmis/solicitud/add. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 403.

    Nota: El web service REST se desarrollo con el framework Spring de Java.

    Toda la ayuda es bien recibida para resolver mi problema con el web service REST, no importa si no es con JQuery, gracias de ante mano. 

    miércoles, 21 de junio de 2017 15:56

Todas las respuestas

  • A la vista del error que te sale, se trata de un problema de seguridad. Estás navegando a una página de un servidor, y desde ella tratas de conectarte a un servicio REST en otro servidor distinto. Por razones de seguridad, esto no se permite salvo que el servidor expresamente lo consienta. Para consentirlo, tiene que meter una cabecera HTTP que es la de "...Allow-Origin" que te sale en el mensaje de error. Este mecanismo tiene un nombre que es CORS. Si buscas esa palabra clave en la red encontrarás numerosos artículos informativos, incluyendo varios que te explicarán como meter esas cabeceras en el servidor si es que tienes acceso al mismo. Desde el lado cliente no tiene solución, no hay nada que puedas cambiar en el javascript para saltarte esta restricción de seguridad si el servidor no lo autoriza.
    miércoles, 21 de junio de 2017 18:03