Apache跨域资源访问报错问题解决方案

admin3年前服务器53

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

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

<span role="presentation" class="objectBox objectBox-errorMessage "><span class="errorMessage ">已阻止跨源请求:同源策略禁止读取位于 xxxxx 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。</span></span>

已阻止跨源请求:同源策略禁止读取位于 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!

?

1
2
3
4
5
6
7
8
9
NameVirtualHost 10.0.0.2:80
<VirtualHost 10.0.0.2:80>
  DocumentRoot /var/www/host.example
  ServerName host.example
  JkMount /webapp/* jkworker
  Header set Access-Control-Allow-Origin "*"
  RewriteEngine on
  RewriteRule  ^/otherhost http://otherhost.example/webapp [R,L]
</VirtualHost>






And here's an example of the Apache config for the second:

?

1
2
3
4
5
6
7
NameVirtualHost 10.0.1.2:80
<VirtualHost 10.0.1.2:80>
  DocumentRoot /var/www/otherhost.example
  ServerName otherhost.example
  JkMount /webapp/* jkworker
  Header set Access-Control-Allow-Origin "*"
</VirtualHost>






以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:cnblogs/wangluochong/p/6001651


免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

icp备案查询系统怎么用,icp备案查询系统简介

1.什么是icp备案?ICP备案是工信部行业监管部门实施的互联网信息服务资源管理制度,全称为互联网内容提供单位信息备案管理办法。其目的是为了监管互联网信息服务资源,促进互联网健康有序发展。2.icp备...

双线空间,附详细介绍

h5双线空间到底是什么?h6探寻双线空间的奥秘1.什么是双线空间?双线空间,指的是一种视觉效果,即在页面中设置了两根虚拟的线,将页面分为上下两段。一般上半部分用于显示页面主要内容,下半部分则用于显示页...

网站服务器租用多少钱?

租用一个网站服务器,不仅省心省力,而且安全稳定。因此越来越多的站长,想要把网站放在服务器上了。但他们对于它的价钱,也是非常关注的。那么到底网站服务器租用多少钱才合理呢?我们一起了解看看吧。服务配置不同...

为什么JSP空间如此受欢迎,让网站建设更加便捷

JSP空间是一种把JSP技术应用到服务器上的空间,它与普通的WEB空间相比,拥有更高的可扩展性、更强的安全性以及更好的性能。JSP(JavaServerPages)是一种动态网页技术,可以在网页中嵌入...

服务器之家,服务器之家介绍

什么是服务器之家?服务器之家的起源和发展历程1.什么是服务器之家?服务器之家是一个面向企业和个人提供服务器租赁、托管、维护等服务的专业平台。它通过互联网与客户实现信息交互,让客户无需投资大量资金也能享...

怎么一键安装Jsp网站程序?Jsp环境一键配置软件JspStudy推荐

怎么一键安装Jsp网站程序?不少朋友都再问这个问题,下面系统世家大嘴巴根据网络资源整理出来有关资料,希望可以帮到大家,下面我们一起看看吧。JspStudy简介JspStudy集成JDK+tomcat+...