5

我需要从我的地图服务器(QGIS 地图服务器)发送一个 CORS 标头,该服务器在端口 8080 上使用带有 Apache 2.4.* 的快速 cgi。

我用一个简单的配置

<VirtualHost *:8080>
   [...]
   Header set Access-Control-Allow-Origin "*"
</VirtualHost>

它有效。

我想设置一个代理来避免在 URL 中指定端口。我在端口 80 中配置了另一个虚拟主机:

<VirtualHost *:80>
    ProxyPass /cgi-bin/ http://localhost:8080/
    ProxyPassReverse /cgi-bin/ http://localhost:8080/

    # Is useful this?
    Header set Access-Control-Allow-Origin "*"
</VirtualHost>

但标题没有传播。有解决办法吗?

4

2 回答 2

8

添加always

Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

并且,启用标头模块

a2enmod headers
于 2017-05-22T14:34:36.743 回答
5

这对我有用 - 使用LocationMatch和 ProxyPass 和 Header 集:

<VirtualHost *:80>

  <LocationMatch "/cgi-bin/">
    ProxyPass http://localhost:8080/
    ProxyPassReverse http://localhost:8080/

    Header add Access-Control-Allow-Origin "*"
  </LocationMatch>

</VirtualHost>
于 2019-05-08T17:06:46.753 回答