[RESOLVIDO] jquery+ajax

Boa tarde pessoal estou tendo problemas com o retorno da minha chamada ajax abaixo segue o código:

$.ajax({
             type: "POST",
              url: "Controller?cmd=autenticarUsuario",
              data: {'login':login, 'senha': senha},
               sucess:function(retorno){                 
              }
})

O código acima é minha chamada ajax, tenho o servlet ‘Controller’ que é responsavel por receber a requisição ver o comando dentro de uma lista de comandos e chamar a função que vai tratar o comando passado, abaixo segue o código do servelt:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        this.droidHelper.setRequest(request);
        Comandos comando = droidHelper.getComando();
        String paginaDestino = comando.execulte(request, response);
        request.getRequestDispatcher(paginaDestino).include(request, response);

    }

abaixo segue o comando que esta sendo execultado:

public class AutenticarUsuario implements Comandos {

    private Session session;

    public AutenticarUsuario(Session session) {
        this.session = session;
    }

    @Override
    public String execulte(HttpServletRequest request, HttpServletResponse response) {
        UsuariosDAO usuariosDAO = new UsuariosDAO(this.session);
        if (usuariosDAO.autenticaUsuario(request.getParameter("login"), request.getParameter("senha")) == Boolean.TRUE) {
            request.setAttribute("logado", "autenticado");
        } else {
            request.setAttribute("logado", "nãoAutenticado");
        }

        return "login.jsp";


    }
}

ai que acho que esta o problema, pois no retorno da minha chamada ajax quero pegar os valores que estou setando na request de volta que no caso é ’ request.setAttribute(“logado”, “autenticado”);’ ou ‘request.setAttribute(“logado”, “nãoAutenticado”);’, gostaria de saber como faço pra recuperar isso no retorno da chamada ajax usando o jquery.

Escrevi no browser sem testar

$.ajax({
    type: "POST",
    url: "Controller?cmd=autenticarUsuario",
    data: {'login':login, 'senha': senha},
    dataType: "json",
    sucess:function(json) {
        alert(json.logado);
    }
})
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response().setContentType("application/json");
    PrintWriter out = response.getWriter();
    out.print("{ \"logado\": \"autenticado\" }");
    out.close();
}

Acho q nem precisa do dataType: “json” quando seta o content type certo no Servlet

amigo gostaria de saber qual o comando no jquery pra abrir uma nova pagina, por exemplo caso meu servelet retorne logado gostaria de abrir uma nova pagina, vc sabe qual o comando no jquery?

Pra mudar a janela atual é window.location.href = ‘novaurl’

Pra abrir uma nova é window.open(‘novaurl’), mas acho q os anti-popup bloqueiam isso se tiver fora de um onclick

amigo acho que não funcionou o código, olha ve se fiz alguma coisa errada:

$.ajax({  
                            type: "POST",  
                            url: "Controller?cmd=autenticarUsuario",  
                            data: {'login':login, 'senha': senha},  
                            dataType: "json",  
                            sucess:function(json) {  
                                alert(json.logado);  
                            }  
                        })  

esse é o meu javascript:

public class AutenticarUsuario implements Comandos {

    private Session session;

    public AutenticarUsuario(Session session) {
        this.session = session;
    }

    @Override
    public String execulte(HttpServletRequest request, HttpServletResponse response) {
        UsuariosDAO usuariosDAO = new UsuariosDAO(this.session);
        PrintWriter out = null;
        response.setContentType("application/json");
        try {
            if (usuariosDAO.autenticaUsuario(request.getParameter("login"), request.getParameter("senha")) == Boolean.TRUE) {
                out = response.getWriter();
                out.print("{ \"logado\": \"autenticado\" }");
            } else {
                out.print("{ \"logado\": \"naoAutenticado\" }");
            }
        } catch (IOException ex) {
            System.out.println("Erro ao montar o objeto json que será enviado de volta para a autenticação do usuário: Erro: " + ex);
        }
        out.close();
        return "login.jsp";
    }
}

acima segue o código do meu camando pra autenticar usuário, porem o alert não foi exibido tem alguma coisa errada?

Como o amigo citou acima…

Veja se lhe ajuda!

request.setAttribute("logado", "CONTEXTO + /usuarioautenticado.jsp"); 

sucess:function(json) { open( json.logado ); }

Ou vc pode ganhar mais com ajax e evitar estes block-pop
usando o inject html do jquery.

request.setAttribute("logado", "<b>NÃO ESTA LOGADO</b>");

[code]

[/code] [code]sucess:function( json ) { $("#target").html( json.logado ); } [/code]

[quote=srmachado]amigo acho que não funcionou o código, olha ve se fiz alguma coisa errada:

acima segue o código do meu camando pra autenticar usuário, porem o alert não foi exibido tem alguma coisa errada?[/quote]

Certifique-se que você não faz nada com a request/response além de imprimir o json. Tipo retirar isso:

request.getRequestDispatcher(paginaDestino).include(request, response);

Se não der certo verifique o a respota vindo do servlet e o erro no console do Firebug ou inspector do Chrome

Amigo olhei no console do Chrome e a response esta vindo com o valor certo porem por algum motivo ele não esta dando o alet.

Opa sucess é com 2 c (success) :smiley:

Muito obrigado meu amigo victorcosta era isso mesmo um erro bem sutil era a palavra que estava errada estava colocando sucess e na verdade era success xD;