It may be safer to pass it in hidden fields using a POST.
There is no major security risk doing this, everything is still encrypted. Although the browser's cache might store the data for a while. You might be able to try to avoid this with caching headers.
In any case, if an attacker has access to the user's cache, they're in trouble anyway.
A better option all together would be to not store the CC details anywhere. Our sites certainly don't - we pass the CC details to a payment service provider immediately, and only store the result (Not the CC details themselves).
Mark