2017-05-03 114 views
0

我有Ubuntu 16.04和Apache 2.4和mod_headers启用。我在default-ssl.conf中配置了一个https站点,该站点使用8000端口中的http站点,在000-default配置文件中使用相同的apache。Apache 2.4跨域

我用certbot创建了我的证书。我试过所有的Headers设置访问权限,仍然apache不接受http链接。现在我有这在default-ssl:

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, Accept-Encoding" 
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L] 

是否有可能是问题是证书?浏览器正在接受证书但不接受跨域。 错误示例:在安全页面上加载混合(不安全)显示内容“http://ipaddresss//appointments.png

+0

你说的*“Apache不接受HTTP连接”的意思*?你的意思是“https”?无论哪种方式,“不接受”是什么意思?你看到了什么确切的错误信息,或者你期望发生什么事情没有发生?无论如何,这似乎与CORS没有任何关系。 “Access-Control- *”头文件唯一影响的是浏览器是否允许前端JavaScript代码访问使用XHR或Fetch API进行请求的响应。 – sideshowbarker

+0

这是错误:在安全页面上加载混合(不安全)显示内容http://ipaddress/appointments.png“ – user1431148

+0

谢谢我看到您更新了答案以添加该详细信息。所以问题是在你的内容的某个地方你有一个代码或标记或CSS要求'http:// ipaddresss // appointments.png',否则服务器重定向请求'https:// ipaddresss // (https)到'http:// ipaddresss // appointments.png'(非https)。 – sideshowbarker

回答

0

我设法使其工作。对任何有兴趣的人我在/etc/apache/sites-available/000-default.conf中添加了两个虚拟主机(端口443和80)。我禁用SSL站点并启用仅000默认

a2dissite default-ssl 
a2ensite 000-default 

,我也内虚拟主机里面加0.0.0.0:443

RewriteEngine On 
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L]