Apache:CORS标题'Access-Control-Allow-Origin'丢失

时间:2016-08-21 20:07:20

标签: javascript jquery apache .htaccess svg

我在其他人使用jquery帖子在我的网站上调用一些svg图像我在控制台中出现以下错误

阻止跨源请求:同源策略禁止在https://abc/svgpaths/sample.svg读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。)

我在.htaccess文件中设置了以下参数

<IfModule mod_headers.c>
     Header add Access-Control-Allow-Origin "*"
</IfModule>

我还在putty中测试了a2enmod标头,它显示模块标头已经启用

但是当我使用Ip而不是域名

例如:https://1.2.3.5/svgpaths/sample.svg

我在控制台中遇到错误 net :: ERR_INSECURE_RESPONSE

我无法弄清楚如何解决这个问题,请指导我解决问题。

从其他服务器调用svg的Js代码

案例1 with ip (在主域和子域上有不同的ssl)

fabric.loadSVGFromURL("https://1.2.3.4/svgpaths/sample.svg", function(objects, options){
            var object = new fabric.util.groupSVGElements(objects, options);
            object.set({
                fill: '#000000',
                selectable:false
            }); 

错误:ERR_INSECURE_RESPONSE

案例2 当使用differnet子域调用时:(子域解析为与上面的情况1相同的ip,我最近指向子域,因此在错过的confi文件中有一些设置)

fabric.loadSVGFromURL("https://abd.maindomain.com/svgpaths/sample.svg", function(objects, options){
            var object = new fabric.util.groupSVGElements(objects, options);
            object.set({
                fill: '#000000',
                selectable:false
            }); 

错误:Apache:CORS标题'Access-Control-Allow-Origin'缺失

2 个答案:

答案 0 :(得分:2)

在/etc/apache2/sites-available/default-ssl.conf中添加此代码为我修复了它。

Header set Access-Control-Allow-Origin "https://example.com"

答案 1 :(得分:1)

您可能没有有效的SSL证书。您可以通过转到实际的请求URL来测试它。

同样包括实际的HTTP响应可能会有所帮助(可以在chrome的开发人员工具的网络选项卡中找到)。

PS。我会回复评论,但在移动设备上打破了