Однажды один жулик что-то украл на базаре.
Увидел это прохожий и закричал что есть мочи: “На воре шапка горит!”
Жулик испугался и сорвал с себя шапку. Тем себя и выдал.
Так вот и родилось это выражение.
В этом случае можно не кричать. Спалился по полной:)