Pergunta

Eu estou trabalhando em um aplicativo de listras que usa um pouco de jQuery para tornar a interface mais dinâmica / utilizável.

Eu configurar uma resolução de erro, por isso, se um erro é lançado, o usuário é redirecionado para uma página error.jsp.

No entanto, se um erro é lançado durante uma chamada jQuery Ajax, em vez de redirecionar para a página de error.jsp, I get html impresso para a página onde o resultado da chamada deveria ter sido em seu lugar.

Como posso dizer jQuery para redirecionar se uma exceção foi lançada em vez de imprimir a página?

Um exemplo do Ajax ofender:

$.post("SendStatusEmail.action",
            {status: newstatus, id : id },
            function(data) {
                column.text(data);
                column.addClass("redfont");
                column.parent().fadeOut(3000, function(){column.parent().remove()});
Foi útil?

Solução

$(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
    // redirect here.
}

Devo acrescentar que eu não redirecionar quando há uma exceção em uma chamada Ajax. Em vez disso, eu tenho o servidor retornar uma descrição de erro no formato JSON e exibição que na página.

Outras dicas

Que tal usar $ .ajax () em vez de US $ .post ()? O $ .ajax mais geral () oferece um retorno de chamada de erro que você pode chamar em caso de um erro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top