The trouble is that a browser will cache when you perform a GET
request against the same URL. As others have said, you can append a timestamp as a query parameter. This forces a new GET
request as the URL has changed.
For ajax specifically, there is a jQuery.ajax parameter that does this for you
cacheBoolean Default: true, false for dataType 'script' and 'jsonp'
If set to false, it will force requested pages not to be cached by the
browser. Setting cache to false also appends a query string parameter,
"_=[TIMESTAMP]", to the URL.
When using AJAX you should use this method. Otherwise, append your own timestamp or modify the headers (which should work in modern browsers).