繁体   English   中英

使用GET请求限制对Ajax调用的页面重新加载

[英]Limit page reload on ajax call with GET request

在我的应用程序中,如果URL具有某些$ _GET参数,我想在此AJAX更新之后更新会话并重新加载页面一次,以下是我的代码。

if($_GET['something']){
   //do something
   $.ajax({
            type: "POST",
            url: "localhost/example/ajaxpage.php",
            data: {
                foo: foo_test,
                bar: bar_test,
            },
            success: function (data) {
                window.location.reload();
            }
        });
}

但在页面重新加载时,它会再次获得$ _GET,因此页面将被重复加载。 如何解决此问题,以使页面在AJAX更新后仅重新加载一次。

更换

window.location.reload();

window.location.href = window.location.origin; 或在此处使用精确的URL

您可以在window.location.href指定URL,而不是relaoad()

if($_GET['something']){
   //do something
   $.ajax({
            type: "POST",
            url: "<?= $HOMEPAGE_ROOT; ?>/example/ajaxpage.php",
            data: {
                foo: foo_test,
                bar: bar_test,
                action: 'reload'
            },
            success: function (data) {
                window.location.href = window.location.origin;
            }
        });
}

在这里,您可以使用window.location.origin或您自己的URL(其中something内容未作为get参数)。

像这样检查会话变量:

if($_GET['something'] && isset($_SESSION['test']))

或会话值。

使用以下代码

       <?php 
        if($_GET['something'] & !isset($_GET['flag'])){
        ?>
            <script>
           //do something
           $.ajax({
                    type: "POST",
                    url: "localhost/example/ajaxpage.php",
                    data: {
                        foo: foo_test,
                        bar: bar_test,
                    },
                    success: function (data) {

                        window.location.href ="Your Url"?something=xyz&flag=1; 
                    }
                });
            </script>
            <?php 
        }
        ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM