首页 > 其他分享 >apache如何解决跨域资源访问

apache如何解决跨域资源访问

时间:2023-04-03 20:45:12浏览次数:39  
标签:Control Origin 跨域 Access 访问 同源 apache com example


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

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

[html] view plain copy

  1. 已阻止跨源请求:同源策略禁止读取位于 http://xxxxx 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。
  2. 已阻止跨源请求:同源策略禁止读取位于 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>


标签:Control,Origin,跨域,Access,访问,同源,apache,com,example
From: https://blog.51cto.com/owenzhang24/6167338

相关文章

  • Tomcat 与 Nginx,Apache的区别
       Apache指的应该是Apache软件基金会下的一个项目——ApacheHTTPServerProject   Nginx同样也是一款开源的HTTP服务器软件(当然它也可以作为邮件代理服务器、通用的TCP代理服务器)。   Tomcat是Apache基金会下的另外一个项目,与ApacheHTTPServer相比,Tomcat能够......
  • 设置不登录访问后端
    取消多租户定义的SpringSecurity配置适配器实现/***配置URL的安全配置*<p>*anyRequest|匹配所有请求路径*access|SpringEl表达式结果为true时可以访问*anonymous|匿名可以访问*den......
  • 设置不登录访问后端
    取消多租户定义的SpringSecurity配置适配器实现@AutoConfiguration@EnableGlobalMethodSecurity(prePostEnabled=true,securedEnabled=true)publicclassYudaoWebSecurityConfigurerAdapter{@BeanprotectedSecurityFilterChainfilterChain(HttpSecurity......
  • Apache JMeter压力测试工具的安装与使用
    官网下载https://jmeter.apache.org/download_jmeter.cgi然后解压即可运行双击bin/jmeter.bat汉化在软件里选择语言重启就会还原,所以这里直接改配置文件来永久汉化打开bin/jmeter.properties找到#language行,大概在第39行,改成language=zh_CN保存后重启jmeter即可使用教......
  • .Net Core3.1 API访问进行频次限制
    首先,安装AspNetCore.RateLimitNuGet包。您可以通过NuGet包管理器控制台或VisualStudio的NuGet包管理器来执行此操作。安装后,您将在项目中看到一个名为AspNetCoreRateLimit的文件夹,其中包含中间件的配置类。接下来,您需要在Startup.cs文件中注册中间件。您可以在Configure......
  • macOS 运行xxx.command文件提示”无法执行,因为您没有正确的访问权限“解决方法
    使用苹果mac电脑运行.command文件时,是否遇到弹出”无法执行,因为您没有正确的访问权限“的窗口?遇到这种问题怎么解决呢?这里小编为大家带来了详细的解决方法,一起来看看吧!解决方法:方法一:打开终端工具,输入以下命令:sudosh注意后面有空格然后再把.command文件直接拖入终端按回车......
  • myBatis报错org.apache.ibatis.ognl.NoSuchPropertyException
    跑批任务时mybatis报错org.apache.ibatis.ognl.NoSuchPropertyException,重跑未出现报错,百度发现是由于mybatis依赖的Ognl版本OgnlRuntime.getMethodValue在并发情况下会存在并发问题,错误地返回null引起报错 以下是搜索该问题时找到的资料:https://github.com/1993hzh/tho......
  • 又一国产开源项目走向世界,百度RPC框架Apache bRPC正式成为ASF顶级项目
    2023年1月26日,Apache软件基金会(ASF)官方正式宣布ApachebRPC正式毕业,成为Apache的顶级项目。我听到这个消息是挺开心的,毕竟是又一款由国人主导的apche顶级项目,再次证明国内在开源界正在发挥越来越重要的作用。ApachebRPC的历史ApachebRPC的前身是百度内部的一个RPC框......
  • XmlTextReader正由另一进程使用,因此该进程无法访问此文件
    此处调用报错:publicvoidsetMaxValueByXml(stringJym,stringvalueMax){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(Server.MapPath("XMLData.xml"));XmlNodeListnodeList=xmlDoc.SelectSingleNode("body")......
  • Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“Schedu
    标题:MicrosoftSQLServerManagementStudio对象“Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“ScheduleRecurrenceAndTimes”发生以下异常:“对象“Microsoft.SqlServer.Management.SqlMgmt.SimpleJobSchedule”上的属性访问器“StartTimeOfD......