Since you asked about performance and caching, I suppose this is different enough from Pekka's dupe checker to warrant additional reply.
Any performance differences will be insignificant as far as the server is concerned, but browsers do not cache POST requests (and rightly so), so therefore if you wanted to be able to allow the server to respond with 301 Not Modified if someone makes 2 subsequent calls to the same URL, then you need to use GET.
It's better practice to follow the standards for HTTP methods, depending on what you're doing with the data as well. If you're retrieving data, generally GET is correct. For sending it, POST or possibly PUT is correct.
Reposting the dupe link here as well: GET vs POST in AJAX?