Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
Error al obtener datos con encabezados (sin retorno)

Estoy tratando de usar una API ( https://tracker.gg/developers/docs/titles/csgo ) y no funciona correctamente. Cuando trato de hacer una solicitud, solicita encabezados dentro de la búsqueda (nunca usé encabezados, solo búsqueda regular y una URL). Haciendo una pequeña búsqueda se me ocurrió:

 async function fetchData() { const response = await fetch('https://public-api.tracker.gg/v2/csgo/standard/profile/steam/76561198008049283', { method: 'GET', headers: { 'TRN-Api-Key': 'XXXX-XXXXX-XXX-XXXXXX-XXX', //here goes the key that I got for this app. 'Accept': 'application/json', 'Accept-Encoding': 'gzip', }, mode: 'no-cors', }) const second = await response.json(); console.log(second); }

Y cuando llamo a esta función, recibo dos errores dentro de la consola:

  1. OBTENGA https://public-api.tracker.gg/v2/csgo/standard/profile/steam/76561198008049283 net::ERR_ABORTED 401
  2. No capturado (en promesa) SyntaxError: final inesperado de entrada

Mi conocimiento es demasiado básico en este momento y me gustaría obtener algunas ideas de lo que me estoy perdiendo y lo que podría hacer para aprender un poco más sobre la obtención de datos y cómo hacer validaciones cuando sea necesario (como una clave de autenticación)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Muy bien, después de jugar con la solicitud, me di cuenta de algo que debería haber sido obvio...
La solicitud que está tratando de hacer NO debería ocurrir en el navegador a menos que esté en el sitio de tracker.gg. En pocas palabras, debe realizar esta solicitud desde su aplicación ( servidor ). Servidor a servidor no tendrá efecto en cors.

Ahora entremos en los detalles sucios de ¿por qué? En primer lugar, su solicitud no incluirá el encabezado 'TRN-Api-Key' porque no está en la lista segura de CORS (como nos dice esta brillante respuesta). Básicamente, cuando realiza la solicitud de recuperación, elimina los encabezados que no están en la lista segura y, por lo tanto, 'TRN-Api-Key' se elimina de su solicitud de encabezado y no va a la API. Por lo tanto, está viendo que "no se envía ninguna clave de API" porque no se envía. Si elimina el modo: 'no-cors', se enviará la clave pero falla CORS. Si no tiene cors en uso, la solicitud debe realizarse en tracker.gg para tener el sitio de cors correcto.
Por lo tanto, los desarrolladores de este proyecto pensaron (y por una buena razón) que solo realizaría esta solicitud en un servidor (simplemente no es una forma segura de manejar la clave api al tenerla en el front-end). Si, en cambio, crea una API para que funcione con su API, su aplicación puede usar su propio servidor personalizado sin conocer la clave API (usando alguna forma de autenticación, por supuesto).
En pocas palabras, es responsabilidad de su servidor de juegos cuidar esta clave API y usarla de manera responsable para los usuarios de su aplicación. Lea los documentos de la API a la que está intentando acceder (también lea esa respuesta ya que es interesante).

Respuesta final: la clave API debe usarse para la comunicación de servidor a servidor como se pretendía (no en el navegador).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda