xmlhttprequest - responsexml - programacion ajax
Trabajadores de servicio: Recuperar xhr cuerpo al recuperar la solicitud (1)
¡Encontró!
Esto es quizás obvio para la mayoría de las personas, pero quería agregar algunas notas con la respuesta, en caso de que alguien se encuentre en la misma situación en el futuro.
Hay varios métodos para recuperar el cuerpo de la solicitud, dependiendo de cómo se ha enviado el cuerpo
event.request.arrayBuffer()
event.request.blob()
event.request.json()
event.request.text()
event.request.formData()
Cualquiera de esos métodos devolverá una Promesa, que incluirá el contenido del cuerpo. Voila!
También debo agradecer a Nikhil Marathe ( https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/ ) por ayudarme a entender cómo funciona todo esto.
¡Aclamaciones!
¿Cómo puedo recuperar el cuerpo que envié desde una llamada de envío (cuerpo) xhr (XMLHttpRequest) ?. Mi variable xhr es XMLHttpRequest lista para llamar a una url interna usando el método POST (Ej: / ruta / api)
xhr.send("a=1");
Por otro lado, implementé un trabajador de servicio y creé el controlador para capturar todas las solicitudes de recuperación
self.addEventListener(''fetch'', function(event, body)
{
event.respondWith( //Check content of event.request.body to run the right action );
}
Puedo recuperar algunas propiedades de event.request como event.request.url, pero no puedo encontrar la manera de recuperar mi cuerpo xhr original (es decir, "a = 1").
Curiosamente, cuando el trabajador del servicio maneja esta solicitud y llama a la red para obtener el resultado,
return fetch(event.request);
el servidor tiene acceso a los datos del cuerpo.
A continuación un extracto del objeto Request que recibo dentro del método SW fetch
Request {method: "POST", url: "http://localhost/services", headers: Headers
, referrer: "http://localhost/m1/", referrerPolicy: "no-referrer-when-downgrade"…}
bodyUsed:false
credentials:"include"
headers:Headers
__proto__:Headers
integrity:""
method:"POST"
mode:"cors"
redirect:"follow"
referrer:"http://localhost/path/"
referrerPolicy:"no-referrer-when-downgrade"
url:"http://localhost/path/api"
¿Alguna sugerencia sobre cómo recuperar el contenido / cuerpo de la solicitud de envío dentro de la captura de búsqueda de servicio del trabajador ()?
¡Gracias!