giansalex / peru-consult-api

API de Consulta de DNI y RUC - Perú (Docker, GraphQL)
https://giansalex.github.io/peru-consult-docs/
MIT License
75 stars 39 forks source link

Habilitar CORS #18

Closed OBSK closed 3 years ago

OBSK commented 4 years ago

Hola, @giansalex hay alguna forma de habilitar CORS, quiero hacer una solicitud y sale que están bloqueadas las solicitudes. Estoy intentando hacer un ajax. Muchas gracias

giansalex commented 4 years ago

Hola @OBSK, por defecto cors esta habilitado para cualquier dominio, la configuración se encuentra en middleware.php. Tal vez se estan enviando otros encabezados, podrias permitir cualquier cambiando a 'headers.allow' => ['*'],

OBSK commented 4 years ago

Puse lo mismo que me dijiste, recibo este error: Access to XMLHttpRequest at 'http://consultas-app.herokuapp.com/api/v1/dni/72500947' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response..

OBSK commented 4 years ago

Access to XMLHttpRequest at 'http://consultas-app.herokuapp.com/api/v1/dni/72500947?token=abcxyz' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

giansalex commented 4 years ago

@OBSK gracias por notificar esto, en la ultima actualización que permitía HTTP Requests asíncronos se perdieron los headers relacionados a CORS, pero ya se corrigió. No necesitas cambiar la configuración, solo actualizar los últimos cambios del repositorio.

Fixed: 94bb74b361ba25cf8be8ceb08c84d1e20e6c62a2

KhanMaytok commented 4 years ago

Hola, el error de CORS se presenta nuevamente cuando hago una llamada desde javascript a la API. Intenté revisar el middleware.php que se muestra arriba, pero el archivo no se encuentra.

giansalex commented 4 years ago

Hola @KhanMaytok, es cierto, al cambiar de framework a Symfony, no se tuvo en cuenta eso, se tendrá que agregar nelmio/cors-bundle.

giansalex commented 3 years ago

Si es solo para pruebas, pueden usar una extension de Chrome.

Utilizar esta API desde el navegador expondría el token de seguridad, con lo cual otros podrian aprovecharse, las llamadas al API deberian hacerse desde un servidor.