gpt4 book ai didi

javascript - 由于 PHP 重定向,AJAX 请求未完成

转载 作者:行者123 更新时间:2023-11-30 12:13:37 25 4
gpt4 key购买 nike

背景

在我的索引页面上,我试图执行一个在数据库表中创建条目的ajax。必须为访问该网站的每个用户创建这些表条目
这个索引页面是一个登录页面,如果用户的 session 已经存在,那么这个页面将重定向到用户的仪表板页面。

问题

这里的问题是,如果用户有 session 事件并且他/她点击了索引页面,然后页面在 ajax“finishesh”之前重定向,所以我无法在表中获取任何条目。

有什么方法可以在重定向之前“等待”ajax 完成,或者如果我可以让 ajax“继续执行”即使在页面重定向时也可以通过其他方式完成?

请注意,我不能使用 jquery 重定向,因为我有服务器级别的验证来重定向,因此,客户端不会起到任何作用。

请看下面的代码:

<?php
if(!(isset($_GET['var']) && $_GET['var'] == 'logout')){
?>
<!-- jQuery -->
<script src="assets/js/jquery.js"></script>
<script>
$.ajax({
url: 'p/ajax_handler.php',
data: 'ajax_action=tracker',
type: 'post',
success :function(data){
data = data.trim();
if(data != '1')
alert("something in backend went wrong, DB couldn't be updated");
},
error: function(xhr, textStatus, error){
alert("Some ajax error occured, see console for details");
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
</script>


<?php
//die("hi"); <-- if i un-comment this, ajax completes correctly as redirect is prevented
}
if(isset($_SESSION['sess_id']) && preg_match($pattern,$_SESSION['sess_id']))
{
header('Location: p/main.php'); # <-- this is bummer
}

最佳答案

你就不能这样做吗?

<script>
$.ajax({
url: 'p/ajax_handler.php',
data: 'ajax_action=tracker',
type: 'post',
success :function(data){
data = data.trim();
if(data != '1')
alert("something in backend went wrong, DB couldn't be updated");

<?php
if(isset($_SESSION['sess_id']) && preg_match($pattern,$_SESSION['sess_id'])) {
echo "$(location).attr('href','http://yoursite.com/p/main.php');";
}
?>
},
error: function(xhr, textStatus, error){
alert("Some ajax error occured, see console for details");
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
</script>

关于javascript - 由于 PHP 重定向,AJAX 请求未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com