我使用jQuery和AJAX将链接和表单中的内容加载到内容div中。另外我使用Address插件启用后退按钮并刷新。在服务器端,我使用Java和Spring MVC。
由于我使用的是jQuery Address和AJAX,因此直接加载的唯一页面是“index.html”。其他所有内容都被加载到内容div中,并且要在哈希中指定要加载的页面,即。 “index.html#/ users / add.html”将加载“users / add.html”。
现在,“users / add.html”包含用于创建新用户的表单。提交表单并且一切正常后,控制器将重定向到“users / index.html”。问题是jQuery Address不知道重定向,所以url将保持“index.html#/ users / add.html”。当您刷新页面然后将其发送回表单而不是索引页面时,这是一个问题。
有没有办法解决这个问题?
谢谢,
了Stian
答案 0 :(得分: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不是一个很好的方法,但我目前还没有找到别的东西。这段代码没有经过测试,我只是提取了自己代码的一部分。
答案 1 :(得分:0)
查看新的表单示例。这是非常基本的,但可能会有用。 http://www.asual.com/jquery/address/samples/form/
在您的情况下,您将无法使用$('form')。address()函数,因为您需要在服务器响应返回后更改地址。
您可以使用data.redirect属性来检测潜在的响应重定向: How to manage a redirect request after a jQuery Ajax call
答案 2 :(得分:0)