4

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?

Don
  • 275
  • 5
  • 14

1 Answers1

7

This has to do with the by definition non-idempotent nature of POSTed 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.

nikc.org
  • 16,462
  • 6
  • 50
  • 83
  • This solution worked but seem IE8/9/10 doesn't want to re-request the previous page. Any ideas? – Don Feb 21 '13 at 22:20
  • Cookie monster disagrees .... django formtools have CookieWizardView... it uses POST and it is REALLY annoying to fix the back button in this case ... – rubmz Feb 05 '20 at 14:42