我的Apache2版本为2.4.25。测试成功。
在网上有很多教程,都提到了要添加一行Header
命令。这本身是没有问题的,但Header是死活找不着的,systemctl
会提示找不到Header
命令。
这是因为缺少了一个模块。
加载headers模块
首先你应该已经知道/etc/apache2/
这个文件夹的作用了。自己的发行版自己去找,我是Debian9
。
进入apache2/mods-enabled
,里面就是已加载的模块了。
进入 apache2/mods-available
,里面是所有的可用的模块。
在mods-available
里面,有一个模块叫headers.load
,这就是我们要加载的模块。
如果你的系统也提示你找不到Header
命令的话,你的mods-enabled
里面一定是没有这个文件的。
我觉得手动复制过去也是可以的,不过我没测试。我本人是用的命令。
sudo a2enmod headers
这就加载好了我们的headers.load
模块。
sites-available文件
别问我这是个什么文件好吗。
好吧,是/etc/apache2/sites-available/your-site.conf
文件。
我想这行代码你应该是认识的吧。
<Directory /home/xxx/media>
Require all granted
</Directory>
添加一行命令。
<Directory /home/xxx/media>
Required all granted
Header set Access-Control-Allow-Origin *
</Directory>
这就是在服务器端添加了CORS
支持了。
这个原理就简单得很了,百度一下CORS
协议就好了。
重启Apache2服务的方法应该都会的。
sudo service apache2 restart
OK,Apache2静态文件现在可以支持跨域了。
个人的一点小记录,用于自己日后查阅,如有不当请指正。
写完后发现已有大佬做过工作了。我就说,这么基础的问题怎么会现在都没人写呢。大佬的文章链接在此。