Basically you need to be able to prove you have a regular income source and that your expenses do not exceed your income. Most credit card companies also want to see a good credit history.
One alternative is to get a pre-paid, secured credit card where you give the credit company say $500 and you get a credit card with a $500 limit. You use the card and pay it off every month to show you are a good credit risk and then they will gradually raise your credit limit until they are confident that you can, and will, pay your debt. At some point they will refund you your security deposit but it takes time. You can view them holding your deposit as a forced savings plan which isn't so bad.