Como seu formulário não contém um URL para enviar e seu
onSubmit -Handler (submitForm ) não retorna false , o formulário será realmente postado pelo navegador na página em que está atualmente (que provavelmente não é capaz de processar os dados POST do formulário) e apenas recarregará a página que contém o formulário de login. O POST provavelmente será enviado para seu script ajax também , mas seu navegador não vai esperar pela resposta, pois já seguiu em frente.
Consulte https://html.spec.whatwg.org/ multipage/forms.html#concept-form-submit para mais detalhes sobre o processo de envio.
A solução seria adicionar
return false para o seu submitForm função ou para o onSubmit manipulador (;return false )