Funcion para XMLHttpRequest


([N1] manuelbc66) #1

Saludos amigos soy nuevo en este foro, quisiera saber si alguno me puede guiar con este tema, a ver si me explico:

He estado trabajando con el objeto XMLHttpRequest para integrar nuestro ERP con Jira, y ya podemos enviar y recibir datos en ambos sistemas, ahora queremos avanzar mas y necesito crear una funcion con js que sea capaz de escuchar los webhook y trabajar con ellas. sin yo tener que hacer una llamada de solicitud de datos.

En resumen quiero crear una funcion en js que atienda los metodos post entrantes y que pueda procesarla c/u y volver a quedar atento a las siguientes entrantes.

Tengo algo como esto no se como iniciarlo por primera vez, ni si va quedar escuchando de nuevo las entrantes ya que tengo muy poca experiencia con JS

importClass(“XMLHttpRequest”);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
xhr.processEvents();
var RES = xhttp.responseText;
var text = JSON.parse(RES);
var webhook = text.webhookEvent;
}
};


([N4] sergioinfortic) #2

Hola.

Para que velneo “escuche” un puerto http y procese llamadas tienes 2 posibilidades:

  1. vModApache: https://doc.velneo.es/¿qué-es-velneo-vmodapache.html
  2. cirrusJS: http://heavyblade.github.io/cirrus/

En el caso de vModApache simplemente marcando un proceso velneo como ejecutable en web ya lo podrías ejecutar con una llamada http.

Si quieres ese proceso puede ser js, velneo te mapeará automáticamente los objetos theRequest y theResponse:

https://doc.velneo.es/vrequest.html
https://doc.velneo.es/vresponse.html

El tema sería decodificar la URI desde theRequest (headers y body) y procesar y generar la respuesta (headers y body) en theResponse:

Si en dichos métodos no necesitas que velneo recoja el body dela petición, puedes usar procesos velneo puros, vModApache decodifica los parámetros automaticamente, por ejemplo, si en un proceso tienes 2 variables llamadas ID y TEXTO puedes poner en la URL:

…/nombreproceso?id=667&texto=hola


([N1] manuelbc66) #3

Si necesito trabajar con el body ya que contiene la informacion que pasare a velneo.

Trabajare en el proceso ejecutable web como opcion lo he usado para publicar informacion pero no para recibir.

Gracias Sergio.


([N4] sergioinfortic) #4

Entonces si usas vModApache el proceso asociado al Endpoint que quieres tiene que ser js.

Con theRequets,body() tienes el body recibido.