难道“Header add Access-Control-Allow-Origin”就不能使用“当前”域吗?

难道“Header add Access-Control-Allow-Origin”就不能使用“当前”域吗?

我目前使用它,它可以完美地允许跨域 Ajax 请求。

SetEnvIf Origin "^http(s)?://(.+\.)?(my-specified-domain\.com)$" origins_is=$0
Header add Access-Control-Allow-Origin %{origin_is}e env=origin_is�
Header add Access-Control-Allow-Credentials: true�

但是,如果不对域名进行硬编码,是否可以做到这一点?

我相信您无法在 SetEnv 中嵌入变量,而且我只是看不到允许替代方案的方法,无论您在哪个域上托管网站。

这当然是一个显而易见且必不可少的要求。谁愿意每次都对域进行硬编码?

也许最好的方法是匹配 ServerName 设置(例如在虚拟主机中)。如果 URL 匹配该设置(无论采用哪种方案),则允许跨域请求。

答案1

你可以:

Header add Access-Control-Allow-Origin *

但我认为它太宽容了,不建议在生产网站上使用它。

编辑:

我还没有尝试过,但是使用类似的东西你应该可以根据 http Origin 标头获取来源:

SetEnvIfNoCase Origin ^(.*)$ origin=$1

相关内容