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

194
Vistas
Cómo obtener parámetros enviados a través de la solicitud JS POST en el método de obtención de Service Worker

Soy bastante nuevo en todo el asunto de "Service Worker" (sí, lo sé, casi 2022 y recién me meto en eso).

Estoy tratando de usarlo para almacenar en cache las respuestas de algunas solicitudes, pero como probablemente sepa, no puede almacenar en caché una solicitud POST.

Sabiendo esto, lo almacenaré en caché de otra manera, pero quiero estar seguro de que tengo que almacenarlo en caché, y para esto necesito saber cuál es el valor del parámetro "datos" del método jQuery.ajax() utilizado. en el origen de la activación de búsqueda.

De hecho, no puedo averiguar cómo recuperar el parámetro de datos con el objeto de event , ni el event.request uno. Hasta ahora pude hacer esto:

 self.addEventListener('fetch', function(event) { const requestUrl = new URL(event.request.url); event.respondWith( caches.match(event.request) .then(function(response) { if(response) { console.log('return cache '+requestUrl.href); return response; } console.log('return classic + save'); return fetch(event.request).then(function(response) { if(!response || response === undefined || response.status === undefined || response.status !== 200 || response.type !== 'basic') { return response; } var respToCache = response.clone(); caches.open('thiscache').then(function(cache) { console.log('cache opened, saving...'); cache.put(event.request, respToCache) .then() .catch(function(error) { console.log('catcherror: '+error); if(event.request !== undefined && event.request.method !== undefined && event.request.method == 'POST') { // Here, I need to get the 'data' parameter from the jQuery.ajax() method in the origin of the fetch } }) }) .catch(function(error) { console.log('Error ! '+error); }) return response; }) }) ); });

No puedo encontrar el método correcto para recuperar estos datos; gracias por su ayuda y cualquier consejo que pueda tener.

Editar:

Para obtener información, aquí hay un ejemplo de jQuery.ajax() que activa la recuperación del trabajador del servicio:

 jQuery.ajax({ url: './ajax.php', type: 'POST', dataType: 'html', xhrFields: { withCredentials: true }, data: 'param1=value1&param2=value2...', // <-- this is what I want to get success: function(reponse, statut) { ... } });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo encontré ! Para realizar eso, debe .formData() el event.request (un clon de él en realidad), que le dará todos los parámetros y sus valores contenidos en el parámetro de data .

 self.addEventListener('fetch', function(event) { var requestClone = event.request.clone(); event.respondWith( caches.match(event.request) .then(function(response) { if(response) { console.log('return cache '+requestUrl.href); return response; } console.log('return classic + save'); return fetch(event.request).then(function(response) { if(!response || response === undefined || response.status === undefined || response.status !== 200 || response.type !== 'basic') { return response; } var respToCache = response.clone(); caches.open('thiscache').then(function(cache) { console.log('cache opened, saving...'); cache.put(event.request, respToCache) .then() .catch(function(error) { console.log('catcherror: '+error); if(event.request !== undefined && event.request.method !== undefined && event.request.method == 'POST') { requestClone.formData().then(formData => { // Do whatever you want with formData, parameters are here :) } } }) }) .catch(function(error) { console.log('Error ! '+error); }) return response; }) }) ); });
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