HTTP
有没有办法使用Access-Control-Allow-Origin头允许多个跨域?
我知道*,但它太开放了。 我真的想只允许几个域名。
举个例子,像这样:
Access-Control-Allow-Origin: http://domain1.com, http://domain2.com
我已经尝试了上面的代码,但它似乎并没有在Firefox中工作。
是否可以指定多个域名,还是只能使用一个域名?
听起来像推荐的方法是让你的服务器从客户端读取Origin标头,将它与你想要允许的域列表进行比较,如果匹配,则将Origin标头的值回显到客户端作为响应中的Access-Control-Allow-Origin标头。
使用.htaccess
你可以这样做:
# ----------------------------------------------------------------------
# Allow loading of external fonts
# ----------------------------------------------------------------------
<FilesMatch ".(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www.)?(google.com|staging.google.com|development.google.com|otherdomain.net|dev02.otherdomain.net)$" AccessControlAllowOrigin=$0
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</IfModule>
</FilesMatch>
我在PHP中使用的另一个解决方案:
$http_origin = $_SERVER['HTTP_ORIGIN'];
if ($http_origin == "http://www.domain1.com" || $http_origin == "http://www.domain2.com" || $http_origin == "http://www.domain3.info")
{
header("Access-Control-Allow-Origin: $http_origin");
}
这对我有效:
SetEnvIf Origin "^http(s)?://(.+.)?(domain.org|domain2.com)$" origin_is=$0
Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
输入.htaccess
它肯定会工作。
干杯!!
链接地址: http://www.djcxy.com/p/47553.html上一篇: http