【问题标题】:POST without redirecting pagePOST 不重定向页面
【发布时间】:2011-06-08 07:24:12
【问题描述】:

嗨 我正在编写一个应用程序,我想在单击发送按钮后发布数据,它将数据发布到一些 web 操作并得到处理,处理后它将被重定向到其他一些 jsp 页面,但我想在同一个页面中我点击发送按钮的地方。我不确定 XMLHttpRequest 方法。

对完成此任务的任何想法表示高度赞赏。

【问题讨论】:

  • 只转发/重定向到相同页面有什么问题?
  • @BalusC 然后当用户决定点击刷新时,它会询问他们......“你想再次提交表单吗”
  • @MuqMan:这仅适用于您转发而不是重定向的情况,无论目标页面如何。顺便说一句,这与这里的问题完全无关。

标签: javascript ajax jsp


【解决方案1】:

您可以使用 jQuery。这将节省一些时间。它是跨浏览器兼容的(即对您隐藏跨浏览器兼容性技术)。

http://api.jquery.com/jQuery.post/

http://jquery.com/

【讨论】:

    【解决方案2】:

    您可以将 302 请求作为 POST 请求的响应返回到您来自的页面。如果您根本不想 POST,我可以向您展示如何通过 AJAX 执行此操作。

    您要使用 GET->POST->GET 的原因是,如果用户点击后退按钮,它不会重新发布给您。

    【讨论】:

      【解决方案3】:

      您可以使用jQuery.ajax() - 它是 XMLHttpRequest 的便捷包装器。

      【讨论】:

        【解决方案4】:

        这是一个很棒的初学者教程,介绍了你想要做什么(使用 jQuery):

        http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

        【讨论】:

          【解决方案5】:

          如果您想使用 Java 脚本和 Ajax(正如您在问题标签中所做的那样),请尝试以下操作:

           function fun() {
            if (window.XMLHttpRequest) {
             xmlhttp = new XMLHttpRequest();
            } else {
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            var url = "Serv?req_id=1";
            xmlhttp.open("POST", url, false);
            xmlhttp.send(null);
            var respo= xmlhttp.responseText;
            document.getElementById("some_id").innerHTML = xmlhttp.responseText;
           }
          

          send buttononclick 事件上致电fun()

          希望这会有所帮助。

          【讨论】:

            【解决方案6】:

            302 请求返回方法似乎对此有好处,如果您使用的是 ajax 或 XMLHttpRequest 对象,那不会是那个问题,但在这里您可以设置重定向标头以重定向回处理您的查询的同一脚本-字符串。

            但是你不能在没有重定向的情况下发帖。

            Passing values from one jsp page to another jsp page

            【讨论】:

              【解决方案7】:

              我知道这有点晚了,但是为了分享知识,我在这里找到了一篇好文章:http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/ 上面是一个非常详尽的示例,说明了如何按照您的要求进行操作。

              如上所述,这是通过 AJAX/jQuery 完成的,本教程将使用它。

              【讨论】:

                猜你喜欢
                • 2013-08-17
                • 1970-01-01
                • 2013-04-15
                • 1970-01-01
                • 2013-09-07
                • 2015-12-20
                • 1970-01-01
                • 1970-01-01
                • 2012-11-05
                相关资源
                最近更新 更多