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