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

167
Vistas
Modificar el cuerpo de la solicitud POST en el trabajador de servicio

Estoy tratando de agregar un parámetro al cuerpo de una solicitud POST en un trabajador de servicio, pero se envía el cuerpo original. Yo uso el siguiente código

 let token = ''; self.addEventListener('message', function (event) { if (event.data && event.data.type === 'SET_TOKEN') { token = event.data.token; } }); self.addEventListener('fetch', function (event) { const destURL = new URL(event.request.url); const headers = new Headers(event.request.headers); if (token) headers.append('Authorization', token); if (destURL.pathname === '/logout/') { const promiseChain = event.request.json().then((originalBody) => { return fetch(event.request.url, { method: event.request.method, headers, // this body is not send to the server but only the original body body: JSON.stringify(Object.assign(originalBody, { token })), }); }); event.respondWith(promiseChain); return; } const authReq = new Request(event.request, { headers, mode: 'cors', }); event.respondWith(fetch(authReq)); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En términos generales, eso debería funcionar. Aquí hay un ejemplo en vivo muy similar que puede ejecutar y confirmar:

https://glitch.com/edit/#!/materialistic-meadow-rowboat?path=sw.js%3A18%3A7

Simplemente POST en https://httpbin.org/#/Anything/post_anything , que a su vez devolverá el cuerpo y los encabezados de la solicitud.

Si su código no funciona, sugeriría usar esa muestra básica como punto de partida y ralentizar la personalización con su propia lógica. Además, sería una buena idea confirmar que su trabajador de servicio tiene el control adecuado de la página del cliente cuando realiza esa solicitud. Con la interfaz de depuración de Chrome DevTool, debería poder colocar puntos de interrupción en el controlador de eventos de fetch de su trabajador de servicio y confirmar que todo funciona como se esperaba.

Dando un paso atrás, debe asegurarse de que su aplicación web no esté codificada de tal manera que requiera que el trabajador del servicio tenga el control para hacer cosas como expirar los tokens de autenticación. Está bien tener una lógica especial en el trabajador del servicio para dar cuenta de la autenticación, pero asegúrese de que las rutas de su código funcionen de manera similar cuando el trabajador del servicio no intercepte las solicitudes, como podría ser el caso cuando un usuario recarga a la fuerza una página web manteniendo presionado la tecla Mayús.

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