Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jQuery地址-表单提交后重定向_Java_Jquery_Forms_Deep Linking - Fatal编程技术网

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

Java jQuery地址-表单提交后重定向,java,jquery,forms,deep-linking,Java,Jquery,Forms,Deep Linking,我使用jQuery和AJAX将链接和表单中的内容加载到content div中。此外,我还使用Address插件启用back按钮和刷新。在服务器端,我使用Java和SpringMVC 因为我使用的是jQuery地址和AJAX,所以唯一直接加载的页面是index.html。其他所有内容都加载到内容div中,要加载的页面在哈希中指定,即index.html/users/add.html将加载users/add.html 现在,users/add.html包含一个用于创建新用户的表单。当表单提交并且一

我使用jQuery和AJAX将链接和表单中的内容加载到content div中。此外,我还使用Address插件启用back按钮和刷新。在服务器端,我使用Java和SpringMVC

因为我使用的是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。这是一个问题,当你刷新页面,然后被发送回表单,而不是索引页面

有办法解决这个问题吗

谢谢,
斯蒂安

首先,我这样开始我的表格:

  $('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;
});
在我的变更方法中有如下内容:

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

看看新表单示例。这是非常基本的,但可能是可用的。

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

您可以使用data.redirect属性检测潜在的响应重定向:
我意识到我对问题的描述不是最好的,对此表示歉意

我在另一个问题中重新设计了这个问题,没有得到答案,但我自己找到了解决办法


如果在表单提交后执行重定向,那么在ajax中执行表单提交有什么意义?