访问控制允许带有和不带有 www 的来源
Posted
技术标签:
【中文标题】访问控制允许带有和不带有 www 的来源【英文标题】:Access Control Allow Origin with and without www 【发布时间】:2021-07-27 13:41:40 【问题描述】:我构建了一个带有以下标头的 php API:
header("Access-Control-Allow-Origin: https://my-domain.de");
这样,我只能从 https://my-domain.de
访问 api,但不能从 https://www.my-domain.de
访问 api
我明白了:
Origin https://www.my-domain.de is not allowed by Access-Control-Allow-Origin.
[Error] XMLHttpRequest cannot load https://my-domain.de/checkin/api/generateUser.php due to access control checks.
我怎样才能使它同时适用于:www 和没有 www?
【问题讨论】:
为什么您的网站本身可以在两个不同的主机名下使用?通常的方法是修复那个,并将一个版本重定向到另一个。 这能回答你的问题吗? Access-Control-Allow-Origin issue with and without www in url 【参考方案1】:您可以只添加另一行:
header("Access-Control-Allow-Origin: https://my-domain.de");
header("Access-Control-Allow-Origin: https://www.my-domain.de");
PHP 不支持通配符头,你要么支持所有域:
header("Access-Control-Allow-Origin: *");
或具体如上
【讨论】:
CORS 对我来说是新的,所以我不知道什么是最安全的做法。我的应用对所有人开放,我不希望有人使用我的 api 或在应用之外运行请求。 无论如何你都应该使用 api 密钥,以确保其得到妥善保护以上是关于访问控制允许带有和不带有 www 的来源的主要内容,如果未能解决你的问题,请参考以下文章