Several things could cause this. First off and maybe the easier to solve is to check out the battery if it is more than 3 years old. Low voltage could cause this. There is a starter solenoid that could cause this if defective. Lastly and not what you would want is the TIMP.
(You might want to reset it by disconnecting the battery then re-hooking it back up.)
Here are some LINKS that might help if you have not already read them. Good Luck and let us know what solves your issue.