It turns out that Internet Explorer caches AJAX requests (how clever). If you’re using $.ajax(), you can pass cache: false option to it, but if — like me — you’re using $.get() and $.post(), just use
$.ajaxSetup({cache: false});
somewhere at the start of your script.