Sounds like the bendix is stuck in the retracted position so it will spin but remain shy of the teeth of the drive clutch which is what it needs to contact to engage and spin the motor. When you turn the key the bendix should jump out and contact and engage the clutch and then as the motor starts and the key is released retract away from the clutch. Look at this contact area for obstructions, build up or anything that could cause the benix to stick in the retracted position. Give it an old fashioned rap with something and see if it frees up, sometimes that works. It may just be going bad and need replacement but inspect it and see if you can free it up.