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

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

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 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