创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
成都创新互联成立与2013年,先为连江等服务建站,连江等地企业,进行企业商务咨询服务。为连江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。小编这次要给大家分享的是如何解决Apache跨域资源访问报错问题,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件、图片等)放在独立服务器或者CDN上,并且使用独立的资源域名。
但是在实际部署中,会发现浏览器无法载入这些不同域名的资源,firefox控制台会报错:
<span role="presentation" class="objectBox objectBox-errorMessage "><span class="errorMessage ">已阻止跨源请求:同源策略禁止读取位于 http://xxxxx 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。</span></span>
已阻止跨源请求:同源策略禁止读取位于 http://xxxxx 的远程资源。(原因:CORS 请求失败)。
这是因为现代浏览器将其定义为跨域资源而不允许加载
理解跨域首先必须要了解同源策略。同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。
何谓同源:
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!
NameVirtualHost 10.0.0.2:80 <VirtualHost 10.0.0.2:80> DocumentRoot /var/www/host.example.com ServerName host.example.com JkMount /webapp/* jkworker Header set Access-Control-Allow-Origin "*" RewriteEngine on RewriteRule ^/otherhost http://otherhost.example.com/webapp [R,L] </VirtualHost>
文章标题:如何解决Apache跨域资源访问报错问题-创新互联
当前路径:https://www.cdcxhl.com/article46/hgchg.html
成都网站建设公司_创新互联,为您提供用户体验、网站导航、建站公司、小程序开发、面包屑导航、网站改版
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联