使用浏览器后退按钮获取Ajax上一个请求

时间:2013-05-02 07:24:29

标签: php javascript jquery ajax browser-history

我正面临着一个带有后退按钮的Ajax请求的情况。

我创建了一个表单,它根据给定的过滤器和特定div上的负载,通过ajax请求发布值并返回结果。当我点击页面上的任何链接时,它会按预期打开新的URL。单击浏览器后退按钮,将打开具有默认值的上一个表单页面。如何启用浏览器状态功能,以便使用浏览器后退按钮获得上次发布值的结果。请注意,ajax的类型是 POST

我得到的一个解决方案是将此表单类型修改为GET而不是POST,但这需要花费很多时间来更改服务器端代码。

var page_url = $(this).attr('href');
page_url = page_url.split(':');
var page = page_url['1'];

$form = $('#form);

        $.ajax({
        type: 'POST',
        data: $form.serialize(),
        url: webroot + 'controller /action/page:'+page
        }).done(function (result){
})

我想知道可能的解决方案。

3 个答案:

答案 0 :(得分:1)

您应该将cache设置为false:

$.ajax({
    dataType: "json",
    url: url,
    cache: false,
    success: function (json) {...}
});

来源https://stackoverflow.com/a/25230377

答案 1 :(得分:0)

你可以使用Jquery .unload()函数或尝试cookies你可以从这里阅读How do I set/unset cookie with jQuery?

答案 2 :(得分:0)

一旦你提交了那个时间不去新页面,只需隐藏表单元素并在其他div中显示新内容。一旦你点击后退按钮,只显示以前隐藏的div并隐藏当前显示div