我使用jQuery Ajax'get'将php引导到logout函数。当执行注销功能时,重定向标头会中断代码,并且在该点之后不会继续。没有Ajax响应。
搞不清楚为什么会发生这种事。。。我以前使用过重定向,但这次阻止了我继续任何代码。
我做错了什么?
jQuery:
$(document).ready(function()
{
$('#logout').on('mouseup', function (e)
{
logOut();
});
function logOut()
{
console.log('start');
$.get('php/function/active-user.php?logout=true', function(response)
{
//This never gets called when using 'header' line in php
console.log(response);
console.log('end');
});
}
}
PHP:
if(isset($_GET['logout']))
{
session_start();
include("../data/connection.php");
$db = connect();
logOut($_SESSION['active-user'], $db);
}
function logOut($user_id, $db)
{
echo 'logging-out!';
session_destroy();
header("Location: user-logout.php"); //header doesn't redirect and no code works after this point
logUser('out', $user_id, $db);
exit;
}
function logOut(redirectPage)
{
console.log('start');
window.location = "php/function/active-user.php?logout=true";
}
你不需要在这里进行AJAX调用,因为你无论如何都想重定向用户,那么为什么不首先重定向用户呢。我在这里也看不到任何安全问题。
第一步是打开PHP中的错误报告以查看错误
例如:error_reporting(E_ALL);