将php头信息发送到Ajax请求的替代方法

时间:2014-03-12 05:16:41

标签: php ajax json authentication header

我的网站上有一个登录脚本,我正在做的是

1)创建登录表单

2)当用户提交登录表单时使用Ajax发布请求

3)这个Ajax请求将数据传递给一个名为ajaxhandler.php的文件(它调用各种apis,如注册,联系人,登录),并期望json回复其内容显示在底部。

4)Ajaxhandler.php根据api调用各种函数,并将json数据返回给ajaxhandler.php,后者将其写入ajax请求。

5)现在我想在成功登录时重定向用户。但是ajax请求需要json数据,如果我发送php头位置信息,则ajax请求的位置被重定向(我在一些谷歌搜索后发现)。我不想改变我的老年人设置的整个框架,所以我应该做什么(我在谷歌上找到的一个解决方案是使用document.location或window.location,但这会将我的网站的安全位置暴露给世界和不安全)那我该怎么做呢?

AjaxHandler代码 -

if (isset($_REQUEST['apiName']) && $_REQUEST['apiName'] != null) {
    $apiName = $_REQUEST['apiName'];
    switch ($apiName) {
        case 'requestSignUp':
            echo UberHealth::requestSignUp($_REQUEST['email']);
            break;
        case 'login':
            echo UberHealth::contact($_REQUEST['email'], $_REQUEST['password']);
            break;
        default:
            echo json_encode(array('status' => 404, 'reason' => 'Invalid api called'));
            break;
    }
} else {
    echo json_encode(array('status' => 404, 'reason' => 'Parameters missing. Invalid request!'));
}

Uberhealth类代码 - >

class UberHealth
{

    public static function login($email,$password){
      // login checking code using redbeanphp which returns json status code and message but I want to send the header location information from here...
    }
}

0 个答案:

没有答案