【发布时间】:2014-08-23 06:55:14
【问题描述】:
我有一个项目使用通配符子域,例如 user.mysite.com,其中用户名是通配符。
在我的服务器 (PHP) 中,我设置了以下标头:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
这允许我从前端进行 ajax 调用,因为我不知道域将是什么。但是,我还需要将我的 cookie 与维护会话的请求一起发送,但是当我在前端告诉 AngularJS 发送凭据时,我收到以下消息:
A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true
我知道这是出于安全原因,但现在我无法在我的应用中进行会话管理。任何人都可以为此提出解决方法吗?
我告诉 Angular 发送凭据的地方:
$httpProvider.defaults.withCredentials = true;
我的 ajax 请求被发送到不同的子域。即 url 可以是billy.mysite.com,但是 ajax 请求被发送到api.mysite.com。
【问题讨论】:
-
只需获取当前请求的主机并使用它而不是通配符
-
我怎么没想到?!谢谢@PeeHaa
标签: php ajax angularjs laravel cors