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

201
Vistas
Comando de recursos MVC de Liferay 7: reaccionar con JS en el valor de retorno

Tengo un comando de recursos MVC de Liferay 7.3 que es algo como esto:

 public boolean serveResource( ResourceRequest resourceRequest, ResourceResponse resourceResponse) { try { // my code goes here return false; }catch(Exception e){ return true; } }

Llamo a este Comando desde JavaScript con esto:

 var req = new XMLHttpRequest(); req.open("POST", '${upload}', true) req.onload = function (event) { console.log("success"); } req.onerror = function (event) { console.log("error"); } // do request req.send(form_data);

El problema ahora es que siempre se llama a la función "onload" cuando MVC ResourceCommands devuelve true en la cláusula catch.

Entonces mi pregunta: ¿Cómo puedo saber en JavaScript cuándo mi ResourceCommand fue exitoso o no?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Javadoc no es tan claro sobre el propósito del tipo de retorno booleano. Especialmente porque GenericPortlet.serveResource tiene un tipo de retorno void .

Sin embargo, pensar en lo que puede suceder dentro de su bloque // my code goes here deja más claro qué esperar: el cliente no puede confiar en el resultado booleano para recibir una señal: podría (y normalmente lo hace) acceder a ResourceResponse flujo de salida, envíe todos los datos que desee, y puede estar mucho tiempo en el cliente cuando finalmente return true; de este código. Eso significa que el marco no tiene posibilidad de interceptar o redirigir ninguna comunicación que ya se haya realizado.

Además, un simple valor de retorno verdadero/falso no le da ningún control sobre qué tipo de error se le indica al cliente. ¿Es 401? 404? 418? 500? ¿O devolvería 200 con un mensaje de error HTML? ¿Un error codificado en JSON?

Si confía en el resultado de esta operación: Mantenga el control sobre ella. No puedo decirle para qué es el valor de retorno booleano, pero no es para el beneficio del navegador. Usted decide si usa un código de estado HTTP para su señalización de error o una carga útil específica. Y una vez que implemente eso, sabrá qué esperar del lado de JS.

Recuerde que tendrá que decidir entre "caso correcto" o "caso de error" antes de enviar datos al cliente. Si comenzó a entregar el resultado "ok" al cliente y de repente se encuentra con una excepción, es posible que haya entregado la mitad al cliente, pero no puede confiar en cambiar de caballo, por ejemplo, no puede comenzar de nuevo, enviando un error mensaje ya que la respuesta podría estar ya (la mitad) de camino al navegador.

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