Llamadas de ajax en ColdFusion y jQuery

Es un ejemplo muy facilito pero me ha servido sobre todo para crear componentes en cfscript que su día cuando empecé no se podía usar.
Lo primero sería tener un formulario, en este caso uno para logarse en la web.

<table>
    <tr>
        <td>Email</td>
        <td><input name="email" type="text"></td>
    </tr>
    <tr>
        <td>Contraseña</td>
        <td><input name="password" type="input"></td>
    </tr>
    <tr>
        <td colspan="2"><button id="login">Logarse</button></td>
    </tr>
</table>

Y un javascript que controle el envío del formulario:

$( document ).ready(function() {               
    $('#login').click( function(e) {
    $('#resultLogin').text('');
    $.post(
        'ajax/user.cfc', // ruta del componente
        {
            method: 'login', // método al que llamaremos
            email: $('input[name="email"]').val(),
            password: $('input[name="password"]').val()
        }
        , "json")
        .done( function(result) {                           
            // es este caso siempre entrará por aquí cuando sea un acceso valido                            
            $('#resultLogin').text(JSON.stringify(result, undefined, 2));
        })
        .fail( function(xhr, status, error) {
            // si falla alguna de las validaciones o el usuario no es válido se generará un error
            $('#resultLogin').text(error);
        });
    });
});     

Por último el componente, que tendría en este caso todos los métodos que pudieran ser llamados por Ajax sobre el usuario:

component { 
    remote any function login ( required string email, required string password ) returnFormat="JSON" {
        // validación del email
        if(!isValid('email', email)) {
            cfheader(
                statuscode = 403,
                statustext = "Invalid Email"
            );       
            return {};     
        }
        // validación de la contraseña
        if(len(password) eq 0) {
            cfheader(
                statuscode = 403,
                statustext = "Invalid Password"
            );            
            return {};
        }

        userObj = createObject('component', 'cfc.User');
        result = userObj.login(email=email, password=password);
        // el componente devuelve una estructura con status 200 si es un usuario válido
        if(result.status neq 200){
            cfheader(
                statuscode = result.status,
                statustext = "Invalid Email or Password"
            );       
            return {};
        }else{
            structDelete(result, 'status');
            return result;
        }
    }  

    // el resto de metodos...

}
Dejar un comentario?

0 Comentarios.

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.