广告
返回顶部
首页 > 资讯 > 操作系统 >Apache跨域资源访问报错问题解决方案
  • 625
分享到

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

Apache跨域资源访问报错 2022-06-04 23:06:51 625人浏览 安东尼
摘要

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

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

但是在实际部署中,会发现浏览器无法载入这些不同域名的资源,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>

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


NameVirtualHost 10.0.1.2:80
<VirtualHost 10.0.1.2:80>
  DocumentRoot /var/www/otherhost.example.com
  ServerName otherhost.example.com
  JkMount /webapp/* jkworker
  Header set Access-Control-Allow-Origin "*"
</VirtualHost>

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

--结束END--

本文标题: Apache跨域资源访问报错问题解决方案

本文链接: https://www.lsjlt.com/news/21125.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作