Isso já aconteceu comigo. No meu caso, o javascript executava o Ajax e trazia um resposta no formato de texto do servidor, que era através de um Servlet. Só que lá no servidor, dependendo do que era solicitado no ajax, era para o usuário ser redirecionado a uma outra pagina. Aí que começava o problema. Em Ajax, sempre que você manda uma requisição, não importar o que aconteça no servidor, ele vai te trazer uma resposta se tiver. Seja ela com
ou com
Quando me retornava para o JavaScript uma resposta Ajax, a mesma era escrita em uma parte da pagina HTML. Se a resposta fosse um texto, escrevia o texto normalmente na pagina HTML. Agora se tivesse um redirecionamento, a pagina que fosse para redirecionar, o javascript escrevia todo o seu código dentro de outro ajax. O que em alguns casos, eu precisava enviar em ajax, uma sessão aberta. Ai era redirecionado para a mesma pagina, resultando em conteúdo duplicado.
Confere ai então, qual exatamente é a resposta do servidor. Verifique também se o seu formulário não esta sendo submetido por um botão submit.
Espero ter ajudado, senão é uma situação que costuma acontecer quase com todo mundo, então fica a dica.