Método remoto del validador jQuery

Estoy usando el método de validación remota y tengo preguntas sobre la siguiente sección dehttp://jqueryvalidation.org/remote-method/.

La respuesta se evalúa como JSON y debe ser verdadera para elementos válidos, y puede ser falsa, indefinida o nula para elementos no válidos, utilizando el mensaje predeterminado; o una cadena, por ejemplo. "Ese nombre ya está en uso, intente con peter123 en su lugar" para que aparezca como mensaje de error.

Si el servidorecho('custom error');, no pasa la validación, pero el error no se muestra. Por qué no?

Si el servidor se ejecutaecho(null); oecho(false);, o no tiene eco en absoluto, el cliente no parece obtener una respuesta, no pasa la validación y no se muestra el mensaje predeterminado. ¿No debería mostrar el mensaje predeterminado? Del mismo modo, si el servidor se ejecutaecho('undefined');, el cliente recibe 'indefinido' pero no se muestra el mensaje predeterminado.

Script del servidor

<?php
  header('Content-Type: text/plain;');

  //The following passes validation
  //echo('true');

  //The following results in the client receiving 1, and "1" is displayed as error
  //echo(true);
  //echo(1);
  //echo('1');

  //The following will trigger the default message
  //echo(0);
  //echo('null');
  //echo('false');
  //echo('0');

  //The following results in no ajax response to client, and no message is displayed.
  //Doesn't this result in client getting undefined which should display the default message
  //echo(null);
  //echo(false);
  //no echo at all

  //Client receives "undefined", but it doesn't display the default message.  Shouldn't it?
  //echo('undefined');

  //Client receives "custom error", but it doesn't display this text.  Shouldn't it?
  echo('custom error');
?>

Script de cliente

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Testing</title>  
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.js" type="text/javascript"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.js" type="text/javascript"></script>
        <script type="text/javascript"> 
            $(function(){
                var validator=$("#myForm").validate({
                    rules: {
                        bla: {
                            minlength:2,
                            maxlength:4,
                            required:true,
                            remote: {url:"validate.php",type:'get',data:{a:1,b:2,c:3}}
                            //remote: "validate.php"
                        }
                    },
                    messages: {
                        bla: {
                            remote:"default message"
                        }
                    }
                });
            });
        </script>
    </head>

    <body>
        <form id="myForm" method="post">
            <input name="bla" id="bla" value="">
            <input type="submit" value="submit">
        </form>
    </body> 
</html>

Respuestas a la pregunta(1)

Su respuesta a la pregunta