Etymology
Today it means: To spread caps (lies) or false rumors (about someone); to slander (someone); to insult (someone's) family. Full definition →
From cap (“a lie or exaggeration”) + on.
Etymology from Wiktionary, CC BY-SA 4.0.