Почему отправляются 2 post запроса на js?
Ещё один вариант - забыли вызвать preventDefault. В результате и обработчик срабатывает, и стандартное действие формы.
Отправляется по клику? Вероятнее всего двойной обработчик на клик.
Однажды у меня была такая фигня, что jQuery загружался на странице 2 раза. Это была опечатка.
Но обертка $(function(){}) срабатывала 2 раза.
Если ничего явного, то можно попробовать отменять предыдущий обработчик через event.preventDefault().