我有以下代码:
<?php
require_once 'assets/functions.php';
if(isset($_SESSION['userName'])){
header('Location:http://192.168.0.50/hub.php');
die();
}
$title = 'ResRes - Login';
printCSS($title);
?>
这是我的index.php文件的一部分。问题是加载后,window.location = result.location
或header('Location:http://192.168.0.50/hub.php')
都不起作用。这令人非常沮丧。
我的javascript代码是:
function verifyUser(userEmail){
$.getJSON('verifyUser.php', {data : userEmail}
).done(function(result){
window.location.href = result.location;
alert(result.message);
console.log(result);
return false;
});
};
我怀疑.done(function(result){...})
甚至没有执行,因为没有发生console.log(),也没有警报本身。不知道为什么会有这种行为。
另外,为了确保在我的verifyUser.php文件中,我有以下标题:
header('Content-Type: application/json');
在测试服务器上,在wamp服务器上,这不会发生。它被重定向。但是,在此生产服务器中,它不会重定向。用户必须手动刷新要发送到result.location
的页面或index.php上的标题。
任何想法可能会发生什么?
修改
在控制台上手动执行$.getJSON
,输出:
$.get('verifyUser.php', {data : 'hector.admin@laestanciaschool.com'}).done(function(result) { console.log("Done called", result); });
Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
答案 0 :(得分:0)
你能否尝试更换
window.location.href = result.location
与
window.open(result.location, "_self")
另外,你的php.ini文件中是否启用了会话?
答案 1 :(得分:0)
您可以使用浏览器的js调试器插入断点以查看错误。
使用chrome,按F12
并单击Sources
选项卡,然后找到源文件,通过左键单击代码行的左侧插入断点。
您还可以使用Network
标签