Потому что js хоть местами и асинхронный, но однопоточный. В данном случае сначала начинается запрос, потом срабатывает алерт, потом завершается запрос (а может и не завершается) и срабатывает коллбэк с выбросом исключения (которое не обработано) (ну или не завершается и возникает другое, но тоже необработанное исключение).
Лучше почитать теорию, там немного, но мозг от того, что приходится мыслить четырехмерно, поначалу ломается. Собственно, для того, чтобы не думать, это всё и придумали, но оно регулярно протекает.
https://learn.javascript.ru/callbacks и далее