matrix | 前端技术博客

May 28 2018 —— Apache

Apache Access-Control-Allow-Origin 跨域设置


UlysoUlyso

在使用 ajax 获取 json 数据的时候,当域名不同时,例如:客户端的域名是 www.client.com,而请求的域名是 www.server.com 时会出现以下错误:

1 XMLHttpRequest cannot load http://www.server.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://www.client.com' is therefore not allowed access.
2

使用 apache 时,首先在 /etc/httpd/conf/httpd.conf 中取消 LoadModule headers_module modules/mod_headers.so 的注释

然后在 httpd.confhttpd-vhosts.conf 文件增加一行配置

  1. 原始代码
1 <Directory />
2 Options FollowSymLinks
3 AllowOverride None
4 </Directory>
5
  1. 允许所有域名
1 <Directory />
2 Options FollowSymLinks
3 AllowOverride None
4 Header set Access-Control-Allow-Origin "*"
5 </Directory>
6
  1. 允许特定域名
1 <Directory />
2 Options FollowSymLinks
3 AllowOverride None
4 Header set Access-Control-Allow-Origin "https://client.com"
5 </Directory>
6

重启 Apache ,即完成跨域配置

注意: apache 要么允许所有域名,要么允许单个域名,不能配置多个域名