window.history.back() shows "Document Expired" page, any way around that?

django, history, internet-explorer, javascript

Solution

This has to do with the by definition non-idempotent nature of `POST`ed requests. I.e. a `POST` is an action which has an effect, and is thus unsafe to repeat. To prevent this from happening accidentally, some browsers show a placeholder page with a confirmation message before resubmitting the original form.

The most reliable solution -possibly the only one- is to submit your form using the `GET` method instead, which makes sense anyway.

Problem

Client is asking for the ability for users to go back to a page full of search results after clicking on a result. Right now it's a simple jQuery call: ``` $('a.detail-back-button').on('click', function(evt) { evt.preventDefault(); window.history.back(); }); ``` This shows a "Document Expired" page in Firefox, however. I know it's there for security, but the client wants this implemented anyways. I've done some searching around and I've found a php solution to the problem... ``` session_cache_limiter('private_no_expire') ``` ...but this is a Django-based web site. Are there any other solutions? UPDATE 02/21/13 The solution below works but only for browsers that aren't IE. IE8/9/10 doesn't seem to re-request the previous page. Is there an IE workaround?

Original source