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

252
Vistas
¿Cómo agregar `?token=...` a la URL de redireccionamiento cuando la API de recuperación obtuvo 302?

Como título. Soy muy nuevo en este tema, así que usaré el ejemplo para describir lo que quiero lograr:

  1. Estoy navegando en un sitio web de Git-pages con algunas imágenes allí. Cuando hice clic en esas imágenes, descubrí que la URL se adjunta con ?token=DSKLFJOS... .
  2. Ahora, si solo copio la URL sin este token, obtendré 404 como respuesta.
  3. Descubrí que el 404 es en realidad la segunda solicitud. La primera solicitud es 302 y el token se puede encontrar en la respuesta.
  4. Entonces, lo que quiero lograr es que quiero usar la API de fetch para intentar obtener el token de 302 y agregarlo a la URL de la solicitud (redireccionamiento) ?token=... para que la segunda solicitud obtenga 200 .

Mi pensamiento: tal vez esto se pueda lograr después de obtener más información sobre las credentials y/o las opciones de redirect de la API de fetch . ¡Pero no estoy seguro de esto!

Este es el código actual que fallará con 404 (en la segunda solicitud). No está escrito por mí, así que no lo entiendo. (y lamento no poder publicar el código completo ya que es un contenido privado)

 fetch(filePath) .then(response => response.arrayBuffer()) .then(arrayBuffer => callback(arrayBuffer, arrayBuffer.byteLength));

Gracias por tu lectura. Si alguna de mis ideas es incorrecta, no dude en corregirme y publicarla como respuesta.

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

0

Tal vez algo como esto funcione. Básicamente, solo verifica el código de estado, y si es 302, volverá a buscar la respuesta con el token, luego, si el estado aún es mayor que 300, devuelve nulo, si no, devuelve la respuesta JSON.

 async function getImage(url, token) { let response = await fetch(url); // You can also say if (response.status >= 300 && response.status < 400) if (response.status === 302) { response = await fetch(`${url}?token=${token}`); } if (response.status >= 300) { return null; } return response.json(); }

Con la ubicación de los encabezados sería algo como esto:

 async function getImage(url) { let response = await fetch(url); if (response.status === 302) { response = await fetch(`${url}?token=${response.headers.get('location')}`); } return response.json(); }

Elimino el segundo si solo para simplificar la respuesta y solo teniendo en cuenta que la solicitud sería exitosa.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede realizar otra solicitud con la nueva URL con fetch(originalResponse.url + token) .

La propiedad de solo lectura url de la interfaz Response contiene la URL de la respuesta. El valor de la propiedad url será la URL final obtenida después de cualquier redireccionamiento.

de https://developer.mozilla.org/en-US/docs/Web/API/Response/url

Aquí hay un ejemplo:

 let token = "abcdef" fetch("page-that-redirects.com/") .then(response => { if (response.status === 404) { fetch(response.url + "?token=" + token) .then(/* do something */) } }) // Or with async/await: let response = await fetch("page-that-redirects.com/") if (response.status === 404) { let newResponse = await fetch(response.url + "?token=" + token) /* do something */ }
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