PHP - 在子域

时间:2017-09-06 13:49:37

标签: php .htaccess session

我的登录页面:example.com/login (root / public_html / login)
我的子域名:api.example.com (root / api)

当我使用AngularJS $ .http发出一个简单的GET请求时,它无法加载会话变量。直接加载页面工作正常,但是当使用Angular时它失败了(即使它在同一台服务器上并且只托管一个不同的子域,也会出现CORS错误)。

是否有可能对绝对路径(而不是相对路径)发出js请求会导致cors异常?

在public_html的.htaccess文件中,我有: php_value session.cookie_domain .example.com

从$ .http加载文件:

if(!isset($_SESSION)) session_start();
if(!empty($_SESSION['username'])) {
    echo "Working";
} else {
    echo "Not finding username";
    exit;
}

登录代码:

session_set_cookie_params(0, '/', '.example.com');
session_start();
$_SESSION['username'] = $query[0]['username'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['image'] = $query[0]['image'];
$_SESSION['role'] = $query[0]['role'];
$_SESSION['banned'] = $query[0]['banned'];
$_SESSION['id'] = $query[0]['id'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['useragent'] = $_SERVER['HTTP_USER_AGENT'];
setcookie(session_name(),session_id(),time()+604800,"/",".example.com");
header("Location: /"); exit;

编辑: api.example.com的doc目录是/ api而不是传统的/ public_html / api这会有所不同吗?

编辑:一旦我将ro​​ot / api docs文件夹移动到root / public_html / api然后在JS中使用了相对路径,一切都解决了。

0 个答案:

没有答案