Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

193
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda