php - 指定具有访问控制源的多个子域

标签 php javascript ajax header cross-domain

我试图允许访问我网站上的每个子域,以允许跨子域 AJAX 调用。有没有一种方法可以指定网站的所有子域,如 *.example.com 或者,当我列出多个域时,为什么以下内容不起作用:

header('Access-Control-Allow-Origin: http://api.example.com http://www.example.com');

我已经通读了以下问题,除了我想访问子域而这个问题指的是一般域之外,它看起来与这个问题很相似,如果不一样的话。

Access-Control-Allow-Origin Multiple Origin Domains?

如果上述问题是此问题的解决方案,那么我如何才能从 header 中检索来源。看起来 $_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']);
}

关于php - 指定具有访问控制源的多个子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9631155/

相关文章:

javascript - 为什么我们需要在 JavaScript 中定义构造函数

javascript - 带有 Rails 菜单的 Google Polymer 不起作用

PHP MYSQL "Advanced"JOIN 查询

php - 将函数从 JS 转换为 PHP

php - 将用户标识符传递给 PayPal 的 notification_url

php - 将多个空行从 JSON 数组插入 MySQL

javascript - 如何制作小游戏的计数器?

javascript - 箭头键通过 li 导航(无 jquery)

jquery ui 可排序 : How to get current index with id and old index with id and pass parameter in ajax in update event

javascript - 通过启用新元素的拖放来解决 jquery 性能问题