Оба варианта верны. Они означают «постучать в дверь». Однако, если используется предлог on, это означает, что кто-то колотит по двери (есть физический контакт с дверью). Если используется предлог at, значит, кто-то стоит у двери (физического контакта с дверью нет).