Search code examples
javascriptajaxhtmlwebbrowser-history

"Re open last closed tab" causing to show last ajax request content


I am using HTML 5 history api to save state when ajax requests happen and i provide full html content if user request to same page with none ajax request.

"Re-open last closed tab" feature of browser brings last ajax request content without hitting to server. If browser would request without bring last request content then everything would work without problem. But browser just show last ajax request content.

I have been experienced this on Chrome 17, Firefox 10. (i haven't tried it on ie9 because it has no support history api)

What is well-known solution for this problem ?

Edit: These ajax requests are just "get" request to server.

it is really not possible to demonstrate it in jsfiddle.net because few reasons. You can demonstrate it in your localhost like below.

Make "get" request to server and pull json objects then push that url into history api like below.

history.pushState(null,null,url);

Then close that tab and click "Re-open last closed tab" feature of your browser. What do you see ? Json response body ? Browser shows it without making request to server, right ?


Solution

  • Problem was causing by http response headers. Headers was contain cacheable information for ajax requests so browser was showing that url content from cache without hit to database.

    After removing cache params from response headers then browser was able to hit server without brings content from cache.