我猜这不是 Laravel 问题,而是我正在使用的 PHP 框架。
我有以下子域:app.hostname.dev
和api.hostname.dev
我有一个带有 API 的 laravel PHP 应用程序。和应用程序上的 AngularJS SPA 应用程序。
如果我在 API 上创建会话变量,则它仅适用于该子域。如果我从前端发出 GET AJAX 请求,下面的 var_dump 将返回 NULL。如果我将我的 API 端点更改为相同的子域 (app.hostname.dev),我会得到正确的会话变量。
//Session::put('test', 'TESTING');
var_dump(Session::get('test'));
这是我的 laravel 会话设置:
'driver' => 'cookie', // also tried database
'path' => '/',
'domain' => '.hostname.dev',
这是我的 AngularJS 设置:
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
我认为上面的设置足以确保跨域会话?
更新
问题不是跨域问题,但似乎更像是请求来自 ajax 的事实。由于创建的 seession varapp.
可用,api.
但无法通过 ajax 获取请求。