我试图允许访问我网站上的每个子域,以便允许跨子域 AJAX 调用。有没有办法指定网站的所有子域,例如*.example.com
或者,当我列出多个域时,为什么以下内容不起作用:
header('Access-Control-Allow-Origin: http://api.example.com http://www.example.com');
我已阅读以下问题,除了我想要访问子域而这个问题指的是通用域这一事实之外,该问题似乎与此问题相似(如果不一样)。
访问控制允许来源多源域? https://stackoverflow.com/questions/1653308/access-control-allow-origin-multiple-origin-domains
如果上述问题是这个问题的解决方案,那么我如何从标头中检索来源。看来 $_SERVER['HTTP_ORIGIN'] 非常不可靠,甚至不能跨浏览器。我需要能够在任何浏览器中看到在尝试使用 JavaScript 发送 AJAX 调用时可能显示错误的源。
这个问题的解决方案是使用$_SERVER['HTTP_ORIGIN']
变量来确定请求是否来自允许的域,然后有条件地设置Access-Control-Allow-Origin
像这样:
$allowed_domains = [/* Array of allowed domains*/];
if (in_array($_SERVER['HTTP_ORIGIN'], $allowed_domains)) {
header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)