jQuery 地址 - 表单提交后重定向

发布于 2024-08-28 07:00:24 字数 463 浏览 4 评论 0原文

我使用 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”。当您刷新页面然后返回到表单而不是索引页面时,这是一个问题。

有办法解决这个问题吗?

谢谢,
斯蒂安

I use jQuery and AJAX to load content from links and forms into a content div. In addition I use the Address plugin to enable the back button and refresh. On the server side I use Java and Spring MVC.

Since I'm using jQuery Address and AJAX the only page that is directly loaded is "index.html". Everything else is loaded into a content div, and what page to load is specified in the hash, ie. "index.html#/users/add.html" will load "users/add.html".

Now, "users/add.html" contains a form for creating a new user. When the form is submitted and everything went OK, the controller redirects to "users/index.html". The problem is that jQuery Address doesn't know about the redirect, so the url will remain "index.html#/users/add.html". And this is a problem when you refresh the page and then get sent back to the form, instead of the index page.

Is there a way to fix this problem?

Thanks,
Stian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

未央 2024-09-04 07:00:24

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

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

您可以使用 data.redirect 属性来检测潜在的响应重定向:
如何在 jQuery Ajax 之后管理重定向请求致电

Take a look at the new Form Sample. It's very basic but will be probably usable.
http://www.asual.com/jquery/address/samples/form/

In your case you won't be able to use $('form').address() function because you will want to change the address after the server response comes back.

You can use a data.redirect property to detect potential response redirects:
How to manage a redirect request after a jQuery Ajax call

染火枫林 2024-09-04 07:00:24

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

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

AJAX - 重定向后获取响应 URL

I realize my description of the problem wasn't the best, apologies for that.

I reformulated the problem in another question, got no answers but I found a solution myself. :)

AJAX - Get response URL after redirect

神爱温柔 2024-09-04 07:00:24

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

  $('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 不是一个很好的方法,但我暂时没有找到其他方法。这段代码没有经过测试,我只是提取了我自己代码的一部分。

First I init my form like that :

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

after I have in my change method something like that :

$.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;
});

And i manage my link in the same way. I hope it can help you. shareData is not a very good way, but i don't find something else for the moment. this code is not tested, I just extract some part of my own code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文