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

时间:2015-10-28 07:08:00

标签: php jquery ajax

在我的应用程序中,如果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更新后页面只重新加载一次。

4 个答案:

答案 0 :(得分:0)

替换

window.location.reload();

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

答案 1 :(得分:0)

您可以在relaoad()

中指定网址,而不是window.location.href
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或您自己的网址something不是get参数。

答案 2 :(得分:0)

检查该会话变量,如下所示:

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

或使用会话值。

答案 3 :(得分:0)

使用以下代码

       <?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 
        }
        ?>