apache访问提示404(Apache跨域资源访问报错问题解决方案)
apache访问提示404
Apache跨域资源访问报错问题解决方案很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件、图片等)放在独立服务器或者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 > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/wangluochong/p/6001651.html
- apache和yii域名配置(Yii 框架控制器创建使用及控制器响应操作示例)
- apache服务器设置301(Apache Rewrite实现URL的301跳转和域名跳转)
- phpstudy8.0使用教程视频(phpstudy v8.1 Apache伪静态配置图文教程)
- mysql5.7.19下载及安装教程(Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法)
- 开源asp.net(apache下支持asp.net的实现方法)
- 修改mysql安装服务名称(Apache为mysql以及自己的项目设置虚拟路径)
- apache配置说明(深入apache host的配置详解)
- 检查安装apache(Apache下MP3 防盗链的解决办法)
- 如何用wampserver打开自己写的php(WampServer下安装多个版本的PHP、mysql、apache图文教程)
- web项目部署到阿里云服务器上(阿里云的WindowsServer2016上部署php+apache)
- 宝塔web服务器如何安装(宝塔面板开启Nginx/Apache防火墙四层防御的方法)
- php nginx 底层执行流程(nginx/apache/php隐藏http头部版本信息的实现方法)
- mac版本php环境搭建(在Mac OS X中配置Apache+PHP+MySQL运行环境的详细步骤)
- apache高并发测试(Apache压力测试工具的安装使用)
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
- apache访问提示404(Apache跨域资源访问报错问题解决方案)
- 自制橡皮泥(自制橡皮泥)
- 还在卖 禁药西布曲明网上论斤卖(还在卖禁药西布曲明网上论斤卖)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
热门推荐
- mysql8.0.20安装教程图解(mysql 8.0.24 安装配置方法图文教程)
- python如何安装requests模块(Python常用模块之requests模块用法分析)
- linux负载均衡(深入理解Linux负载均衡LVS)
- 宝塔nginx装哪个版本(宝塔面板nginx关闭状态,启动不了解决办法)
- android系统如何截屏(Android实现矩形区域截屏的方法)
- css背景的属性有哪些(简述CSS中的背景属性background)
- 原生js实现轮播图代码(js实现轮播图制作方法)
- 如何应对网站安全问题(网站安全有哪些防护措施?)
- 未来10年python前景(Python应用领域和就业形势分析总结)
- mysql带log的版本(聊聊MYSQL中Redo Log是什么?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9