问题描述:我想设置我的网站“Access-Control-Allow-Origin”,所以我在apache的配置中设置它(几乎在任何地方),但它不起作用。我还设置了其他标题用于测试,但它仍然无法正常工作。
Apache版本: 2.2.22
Apache模块: http://www.anwcl.com/test/show_modules.php
我的目标网址:
http://www.anwcl.com/test/test_only_div.html
它与我的本地文件相关联:
e:\wamp\www\test\test_only_div.html
E:\瓦帕\ BIN \阿帕奇\ apache2.2.22 \ CONF \ httpd.conf中
...
LoadModule headers_module modules/mod_headers.so
...
Include conf/extra/httpd-vhosts.conf
...
E:\瓦帕\ BIN \阿帕奇\ apache2.2.22 \ CONF \额外\的httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
Header add Access-Control-Allow-Origin "*"
Header echo ^TS
Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
ServerAdmin xxx@gmail.com
DocumentRoot "E:/wamp/www/"
ServerName www.anwcl.com
ErrorLog "logs/xxx.log"
CustomLog "logs/xxx.log" common
<Directory "E:/wamp/www/">
Header add Access-Control-Allow-Origin "*"
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
E:\瓦帕\ WWW \ htaccess的
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
E:\瓦帕\万维网\测试\ htaccess的
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
http://www.anwcl.com/question/apache-mod-headers-not-working.jpg
http://www.anwcl.com/question/apache-mod-headers-not-working-304.jpg
答案 0 :(得分:0)
检查php_info()
的输出,看看你的apache网络服务器是否加载了mod_headers。
答案 1 :(得分:0)
可能发生了更改,您没有在浏览器中看到更改。如果您正在提供静态文件,例如您尝试更改标题的图像,则这种情况尤其典型。
在查看打开Javascript控制台的页面时,您甚至可以使用chrome禁用缓存,但仍然看不到更改生效。
您想要寻找的是响应代码。如果它是304,则服务器已识别出您的浏览器已具有所请求文件的有效表示,并将提供该文件。如果是,则在浏览器最初下载该页面后,您将看不到添加的标题。
要查看是否是这种情况,请将网址更改为http://myexample.com/myimage.jpg?t=1
或任何其他随机查询参数,看看是否有效。
答案 2 :(得分:0)
当我意识到自己在配置文件/etc/apache2/sites-enabled/000-default.conf
中修改了错误的虚拟主机时,也遇到了此问题,并进行了修复。
我在使用具有不同端口的虚拟主机时修改了默认的VirtualHost配置。
<VirtualHost *:6000>
Header set Access-Control-Allow-Origin "*"
</VirtualHost>
我还遇到了Dylan Maxey描述的错误,并通过在浏览器检查器中禁用了缓存来解决了这个错误: 这也是指向我认为有帮助的网站的链接: https://enable-cors.org/server_apache.html
答案 3 :(得分:0)
就我而言,添加Header set "key" "value"
无效。我必须为RequestHeader set "key" "value"
使用ProxyPass
来发送标题。
<VirtualHost *:443>
ServerName myserver.com
ServerAlias www.myserver.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
RequestHeader set "X-Forwarded-Proto" "https"
#
# Setup SSL
#
# SSLProxyEngine on
SSLEngine on
SSLCertificateFile location-to-certificate.crt
SSLCertificateKeyFile location-to-private.key
SSLCertificateChainFile location-to-ca_bundle.crt
</VirtualHost>