1

我使用 jQuery 和 AJAX 将链接和表单中的内容加载到内容 div 中。此外,我使用地址插件来启用后退按钮和刷新。在服务器端,我使用 Java 和 Spring MVC。

由于我使用的是 jQuery 地址和 AJAX,唯一直接加载的页面是“index.html”。其他所有内容都加载到内容 div 中,并且在哈希中指定要加载的页面,即。“index.html#/users/add.html”将加载“users/add.html”。

现在,“users/add.html”包含一个用于创建新用户的表单。当表单提交并且一切正常时,控制器重定向到“users/index.html”。问题是 jQuery 地址不知道重定向,所以 url 将保持“index.html#/users/add.html”。当您刷新页面然后将其发送回表单而不是索引页面时,这是一个问题。

有没有办法解决这个问题?

谢谢,
斯蒂安

4

3 回答 3

0

我意识到我对问题的描述不是最好的,为此道歉。

我在另一个问题中重新提出了这个问题,没有得到答案,但我自己找到了解决方案。:)

AJAX - 重定向后获取响应 URL

于 2010-04-20T14:40:39.300 回答
0

看看新的表单示例。这是非常基本的,但可能会可用。 http://www.asual.com/jquery/address/samples/form/

在您的情况下,您将无法使用 $('form').address() 函数,因为您将希望在服务器响应返回后更改地址。

您可以使用 data.redirect 属性来检测潜在的响应重定向: How to manage a redirect request after a jQuery Ajax call

于 2010-04-09T15:33:17.607 回答
0

首先我像这样初始化我的表单:

  $('FORM').submit(function () { 
     shareData = $(this).serializeArray();     
     $.address.value($(this).attr('action'));
  })

在我的更改方法中有类似的东西之后:

$.address.change(function(event) {

    if (event.path != '/' && event.parameters.layout_to_use != undefined) {

        // if no json, load don't do a post request
        shareData = _arrayToJson(shareData);;

        $('#areatoreload')
            .html('<span style="background-color:red;">loading...</span>')
            .load('myscript.php', shareData, function() {});
    }
    return false;
});

我以同样的方式管理我的链接。我希望它可以帮助你。shareData 不是一个很好的方法,但我暂时没有找到其他方法。这段代码没有经过测试,我只是提取了我自己代码的一部分。

于 2010-04-09T08:37:04.273 回答