我有一个Laravel应用程序,它具有主域和子域设置。我已经实现了CORS:
public function handle($request, Closure $next)
{
if (isset($_SERVER['HTTP_ORIGIN']))
$referrer = $_SERVER['HTTP_ORIGIN'];
else
$referrer = request()->url();
if($referrer == null || $referrer == 'null')
return $next($request);
...
return $next($request)
->header('Access-Control-Allow-Origin', $allowedUrl)
->header('Access-Control-Allow-Methods', '*')
->header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, x-csrf-token, x-auth-token, x-xsrf-token')
->header('Access-Control-Allow-Credentials', 'true');
}
CORS工作正常,会话通过'domain' => env('SESSION_DOMAIN', null)
中的session.php
分享。
我遇到的问题是如果我在开始时没有打开主域名。在那种情况下(我想),会话永远不会在域中进行,当我尝试从子域触发请求时,它无法说明存在No 'Access-Control-Allow-Origin' header
。
但是,当我转到我的主域example.com
然后返回sub1.example.com
时,它正在运行。
有没有人有类似的问题?
在服务器上调用是正常的AJAX调用,我不认为在这里附加那部分代码是相关的,但是如果它有用我可以。