2012-06-18 14 views
6

Dentro de mi llamada AJAX Si se recibe un error que tengo una alerta:error invocación jQuery Ajax de devolución de llamada desde dentro servlet

$.ajax({ 
     url: "myUrl",  
     type: 'POST', 
     dataType : "text", 
     data : ({ 
      json : myJson 
     }), 
     success : function(data) { 
       alert('success'); 
    }, 
    error : function() { 
       alert ('error'); 
    } 

Desde dentro de java es posible enviar de nuevo a invocar la respuesta de error en jQuery si un se arroja una excepción Así que algo como:

try { 
     PrintWriter out = resourceResponse.getWriter(); 
     out.println("success"); 
     out.close(); 
    } catch (Exception e) { 
     PrintWriter out = resourceResponse.getWriter(); 
     out.println("error"); 
     out.close(); 
    } 

es decir en lugar de imprimir "error" en la respuesta, invocar la devolución de llamada 'error' en el código de jQuery.

Respuesta

4

Tiene que establecer http status code de algo que no sea 200 para invocar la devolución de llamada de error en jQuery Ajax. Se puede establecer un staus error de 500 (which is for Internal Server Error) como

catch (Exception e) { 
    resourceResponse.setProperty(resourceResponse.HTTP_STATUS_CODE, "500"); 
    PrintWriter out = resourceResponse.getWriter(); 
    out.println("error"); 
    out.close(); 
} 

en su bloque catch.

1

utilizar la página de AJAX para devolver un objeto JSON con dos valores

  • los datos reales
  • el código de error

Así se puede procesar la lógica de error en la página de AJAX. Estas soluciones representan errores personalizados en su página AJAX, los errores en la llamada AJAX pueden manejarse con su código existente.

2

tiene dos opciones:

  1. manejar cada error en servlets y envolver los detalles de error/éxito dentro de respuesta JSON, como se ha señalado por el craneo
  2. Uso HttpServletResponse para establecer el código de estado de HTTP 500 (u otro error código) y luego simplemente manejar la devolución de llamada error en la secuencia de comandos jQuery
+0

¿Se puede publicar una respuesta json de muestra que contiene un error? –

Cuestiones relacionadas