Problema API REST (CORS)

Buenas,

Estoy queriendo llamar al siguiente endpoint:

https://mapuche.ungs.edu.ar/syti/mapuche/rest/agentes

Estoy haciendo un Http Request desde una aplicación en Angular JS y la consola me arroja un error de encabezado CORS ‘Access-Control-Allow-Origin’ faltante cuando llamo al endpoint (adjunto captura).

Entiendo que tengo que habilitar desde el servidor de Mapuche a las conexiones externas, cierto?

De ser así, donde tendría que configurarlo?


Screen Shot 2020-02-27 at 15.22.09.png

Screen Shot 2020-02-27 at 15.22.09.png

Hola Agustín,

Lo primero que deberías probar es si los servicios te funcionan desde la consola swagger de mapuche a la misma accedes desde https://mapuche.ungs.edu.ar/syti/mapuche/rest/ . Si de ahí el servicio te funciona deberías tener otro problema.

Por otro lado para permitir accesos externos no recuerdo bien pero creo que se habilita desde el archivo php.ini (si no es en este es en el archivo de configuración de apache) una vez modificado reinicia apache para que tome los cambios.

Saludos
Poli

Se pude habilitar el acceso externo a una instancia o recurso (por ejemplo las API REST) sin afectar al resto del server?

Agustín,
Disculpa la demora pero me puse a leer un poco mas sobre el error y a recolectar información hablando con compañeros de trabajo.
Ademas tenia que poder reproducir el error por lo que escribí una pequeña aplicación en React Js y en JS nativo.

Lo que deberías hacer es un Wrapper en sudocu y desde tu aplicación en agular consumir ese servicio y que este sea el encargado de ir a mapuche y traer los datos.

El Problema de consumir la api rest de mapuche desde angular es que están exponiendo las credenciales para acceder a mapuche lo cual es una Grave Falla de Seguridad. En cambio si consumen desde la api de Sudocu los servicios de mapuche estos datos están en el servidor y no están expuestos.

Saludos
Poli

Buenas Miguel,

Ya pudimos resolverlo.

Te agradezco mucho por la ayuda!

Saludos

Hola Agustin,
te consulto de que manera lograste resolver la comunicacion con Angular JS, en nuestro caso estamos queriendo consumir un REST con autenticacion Digest, desde REACT y nos devuelve el mismo error, probamos añadir las cabecera Access-Control-Allow-Origin con valor * sin resultados positivos.

Desde ya muchas gracias.
Ariel.

Buenas!
Al intentar navegar la API REST de Mapuche con swagger obtenemos el siguiente error en la consola del navegador:

Blocked loading mixed active content “http://urlmapuche/rest/api-docs”
Unable to Load SwaggerUI

Si modifico la configuración de Firefox para habilitar contenido mixto obtengo el siguiente error:

Uncaught Can’t read from server. It may not have the appropriate access-control-origin settings.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://urlmapuche/rest/api-docs. (Reason: CORS request did not succeed).

Qué puede ser?

Buen dia Ariel,
Lo que debes hacer para consumir las apis de mapuche dentro de una app react o angular es crearte dentro del proyecto que estas haciendo llamados a la api de mapuche (pero esto por php o por el lenguaje que estés programando) y luego de la app en react consumir ese método que creaste. Esto es poque sino desde REACT si llaman a un servicio de mapuche están exponiendo las credenciales para acceder a los servicios de Mapuche, en cambio haciéndolo desde PHP por ejemplo esto no pasa.
Saludos
Poli

Buen dia Agustina,
Probaste con otro navegador como puede ser Chrome para ver si te da el mismo error?

Saludos
Poli

Hola Poli!
Si, probé en Chrome y obtengo el mismo error.

Hola Agustina, como estas?
Investigando sobre el error que te sucede, encontré que muchas veces esta relacionado con extensiones instaladas en los browsers, por ejemplo Adblock, las cuales bloquean las solicitudes.
Podes verificar cuales extensiones tienen instaladas y si alguna bloquea la conexión.
Saludos, Timoteo.

Hola Timoteo!
Pude solucionarlo. El problema es que el Mapuche está en https, y cuando navego /rest me redirige a http. Le agregué manualmente la s y ya está.
Gracias!
Agustina