Sivo 悉见

apache如何解决跨域资源访问

匿名 · 更新于 2018/9/30

很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件、图片等)放在独立服务器或者CDN上,并且使用独立的资源域名(例如res.test.com)

但是在实际部署中,会发现浏览器无法载入这些不同域名的资源,firefox控制台会报错:

 


 
  1.  
    <div class="hljs-ln-code">
    <div class="hljs-ln-line"><code class="language-html hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">role</span>=<span class="hljs-string">&quot;presentation&quot;</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;objectBox objectBox-errorMessage &quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">span</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;errorMessage &quot;</span>&gt;</span>已阻止跨源请求:同源策略禁止读取位于 http://xxxxx 的远程资源。(原因:CORS 头缺少 &#39;Access-Control-Allow-Origin&#39;)。<span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">span</span>&gt;</span></code></div>
    </div>
    </li>
    <li>
    <div class="hljs-ln-numbers">
    <div class="hljs-ln-line hljs-ln-n" data-line-number="2">&nbsp;</div>
    </div>
    
    <div class="hljs-ln-code">
    <div class="hljs-ln-line"><code class="language-html hljs xml">已阻止跨源请求:同源策略禁止读取位于 http://xxxxx 的远程资源。(原因:CORS 请求失败)。</code></div>
    </div>
    </li>
    
 
 

这是因为现代浏览器将其定义为跨域资源而不允许加载

 

理解跨域首先必须要了解同源策略。同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。
    何谓同源:
        URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。
    同源策略:
        浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性。 (白帽子讲web安全[1])
        从一个域上加载的脚本不允许访问另外一个域的文档属性。

 

那么关键是如何解决呢,其实很简单,只要在静态资源服务器上,增加一个头信息:

Access-Control-Allow-Origin *

本文就apache进行操作,nginx大同小异

 

首先编辑httpd.conf

找到这行

#LoadModule headers_module modules/mod_headers.so

把#注释符去掉

LoadModule headers_module modules/mod_headers.so

目的是开启apache头信息自定义模块

 

然后在独立资源域名的虚拟主机添加一行

Header set Access-Control-Allow-Origin *

意思是对这个域名的资源进行访问时,添加一个头信息

 

重启apache

再访问,OK!

--------------------- 本文来自 无效的名字 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ownfire/article/details/46707229?utm_source=copy