es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error CORS con dgraph y apollo graphql

No puedo ejecutar solicitudes de consulta con mi servidor local de dGraph.

Estoy ejecutando:
1. dGraph usando Docker Compose con tanto el servidor zero como el servidor alpha.
2. Frontend del lado del cliente de React utilizando apollo-client graphql para ejecutar consultas.

dGraph se inicia correctamente, me he conectado y he ejecutado consultas/mutaciones/etc a través de la aplicación Postman, pero al intentar ejecutar la misma consulta a través de Apollo, muestra el error “No se puede obtener”.

¿Alguna idea de cómo puedo configurar Apollo o dGraph para aceptar solicitudes CORS y finalmente ejecutar la consulta?

Nota: Descargué y ejecuté las consultas a través de Apollo utilizando la extensión del navegador para permitir solicitudes CORS y luego la interfaz se ejecuta correctamente, lo que indica que el problema está relacionado con la configuración de CORS.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema que estás enfrentando está relacionado con la configuración de CORS. Para resolver esto, puedes intentar los siguientes pasos:

    1. Actualiza tu archivo docker-compose de dgraph para incluir la siguiente configuración en la definición del servicio alpha:
    command: dgraph alpha --my=dgraph:7080 --lru_mb=2048 --zero=zero:5080 --whitelist 0.0.0.0/0 --bindall=true
    

    Esto permitirá que dGraph acepte conexiones externas desde cualquier dirección IP.

    1. Especifica el origen CORS en tu archivo de configuración de dgraph alpha. Crea un nuevo archivo dgraph-alpha.cfg en el directorio de datos de dgraph con las siguientes opciones de configuración:
    cors_allow_origin = "*"
    cors_allow_methods = "GET, POST, OPTIONS"
    cors_allow_headers = "Content-Type, Access-Control-Allow-Origin, Access-Control-Allow-Headers"
    cors_expose_headers = "true"
    
    1. Actualiza tu cliente de apollo para incluir la siguiente configuración:
      const httpLink = new HttpLink({
        uri: "http://localhost:8080/graphql",
        fetchOptions: {
          mode: "cors",
        },
      });
    

    Aquí, le estamos diciendo a la API de fetch que incluya los encabezados de CORS en la solicitud.

    1. Reinicia tu aplicación de dgraph y react para confirmar que los cambios se aplicaron correctamente.

    Con estos cambios, deberías poder ejecutar correctamente solicitudes de consulta con tu servidor local de dgraph.

Comments are closed.