所请求的资源上没有“Access-Control-Allow-Origin”标头——但是它存在吗?

所请求的资源上没有“Access-Control-Allow-Origin”标头——但是它存在吗?

我的/etc/apache2/sites-enabled/example.com.conf远程服务器看起来像这样......

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.com
        ServerAlias images.example.com
        Header set Access-Control-Allow-Origin "*"
        DocumentRoot /home/username/var/www/example.com/public_html/
        ErrorLog /home/username/var/www/example.com/logs/error.log
        CustomLog /home/username/var/www/example.com/logs/access.log combined
</VirtualHost>

我在本地机器上运行一个 Django 项目。该项目向远程服务器发出 GET 请求以读取 JSON 文件:http://images.remote-server.com/dir/subdir/info.json

但我在浏览器的控制台中看到这个错误。

Failed to load http://images.remote-server.com/dir/subdir/info.json: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access.

我在我的 中什么也没看到error.log

我该如何'Access-Control-Allow-Origin'在我的.conf文件中正确设置?

答案1

要使用 Apache 将 CORS 授权添加到标头,只需在以下任一位置添加以下行:目录地点文件或者虚拟主机服务器配置的部分(通常位于 *.conf 文件中,例如 httpd.conf 或 apache.conf),或在 .htaccess 文件中:

<VirtualHost *:80>
....      
Header set Access-Control-Allow-Origin "*"
</VirtualHost>

并重新启动(重新加载)apache

看来您已将“Header”添加到错误的虚拟主机

相关内容