PHP和JavaScript重定向无法正常工作

时间:2014-08-06 17:16:48

标签: javascript php redirect

我有以下代码:

<?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.locationheader('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…}

2 个答案:

答案 0 :(得分:0)

你能否尝试更换

window.location.href = result.location

window.open(result.location, "_self")

另外,你的php.ini文件中是否启用了会话?

答案 1 :(得分:0)

您可以使用浏览器的js调试器插入断点以查看错误。

使用chrome,按F12并单击Sources选项卡,然后找到源文件,通过左键单击代码行的左侧插入断点。

您还可以使用Network标签

检查浏览器与服务器之间的请求和响应