Apache中配置支持CORS(跨域资源共享)实例
作者:junjie 发布时间:2023-08-22 06:11:03
当使用ajax跨域请求时,浏览器报错:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin.肯定是跨域的问题,如果用jsonp或者proxy的方式进行修改的话未免需要太大的工程量,所以采用CORS这种比较简单高效的技术。相比JOSP的方式,CORS更为高效。JSONP由于它的原理只能实现GET请求,而CORS支持所有类型的HTTP请求。使用CORS,可以使用普通的ajax实现跨域,这对于前端来说是极大的福音了,这个技术被现在大多数浏览器所普遍支持,因为跨域已经是普遍的要求,浏览器肯定会逐渐流出适当的‘后门'出来专门用以跨域。
浏览器支持情况
经本人测试IE浏览器中IE10及以上才可正常发送请求
1.服务器端对于CORS的支持,是通过设置Access-Control-Allow-Origin来进行的。如果浏览器检测到相应的设置,就可以允许Ajax进行跨域的访问,也就是相应的‘后门'。
设置Apache:Apache需要使用mod_headers模块来激活HTTP头的设置,它默认是激活的。你只需要修改Apache配置文件中的httpd.conf文件:
原始代码
<Directory />
AllowOverride none
Require all denied
</Directory>
改为下面代码
<Directory />
Require all denied
Header set Access-Control-Allow-Origin *
</Directory>
在处理请求的PHP文件中设置:
<?php
header("Access-Control-Allow-Origin:*");
//处理请求输出数据
?>
配置的含义是允许任何域发起的请求都可以获取当前服务器的数据。当然,这样有很大的危险性,恶意站点可能通过XSS攻击我们的服务器。所以我们应该尽量有针对性的对限制安全的来源,例如下面的设置使得只有http://aspxhome.com/这个域才能跨域访问服务器的API。
httpd.conf中:
Header set Access-Control-Allow-Origin https://www.aspxhome.com
php文件中:
<?php
header("Access-Control-Allow-Origin:https://www.aspxhome.com");
前台代码:
<script type="text/javascript">
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// 此时即支持CORS的情况
// 检查XMLHttpRequest对象是否有“withCredentials”属性
// “withCredentials”仅存在于XMLHTTPRequest level 2对象里
} else {
// 否则检查是否支持XDomainRequest
// XDomainRequest仅存在于IE中,是IE用于支持CORS请求的方式
xhr = new XDomainRequest();
}
xhr.open(method, url, true);
xhr.send();
xhr.onload = function(){
alert(xhr.responseText);
}
}
createCORSRequest('GET', "http://192.168.1.58/t.php");
</script>


猜你喜欢
- 今天在检查博客附件的时候发现有以前上传的一个注册表导入脚本reg文件丢了,重新上传的时候居然报错了。仔细看了才发现是之前安装的Waterma
- 实例如下:/* * BlockingQueue.h * * Created on: 2014年6月10日 * Author:
- Linux静态库与动态库实例详解1. Linux 下静态链接库编译与使用首先编写如下代码:// main.c#include "t
- CentOS Linux系统搭建Android开发环境详细介绍 很多
- 本文为大家分享了VMware安装Linux系统的具体步骤,供大家参考,具体内容如下首先,准备一个Linux的镜像文件,我这里使用的是Cent
- .htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,
- 这篇访谈有点早了,是今年3月份时的事。Matt Cutts针对Google的爬行,索引机制以及对301重定向,重复内容处理的问题做出了些回答
- 昨天晚上登录了一下 AdSense,很久没上去看看了,结果也没有让我绑定 Analytics 之类的提示和链接,因为至今人在使用老的 AdS
- 今天下午在上蓝色理想时在首页,点击论坛的页面时就出现了页面无法打开的问题,接着想进入论坛(http://bbs.blueidea.com )
- 一、背景说明1.1 面临问题最近一份产品检测报告建议使用基于pki的认证方式,由于产品已实现https,商量之下认为其意思是使用双向认证以处
- 这几天下雨特大,门口的水长5厘米就浸入家里了,真的好险,不知为什么,总有一种喜欢听下雨的啪啪声,也许是希望大雨可以冲走心中所有一切郁闷不快吧
- 今天,中国雅虎推出了采用@yahoo.cn域名的“终生邮箱”,并声称是“无限容量”的免费邮箱。新推出的“终生邮箱”整合了雅虎相册、音乐盒、音
- 关于优化说起优化,其实最好的优化就是提升硬件的配置,例如提高cpu的运算能力,提高内存的容量,个人认为如果你考虑升级硬件的话,建议优先提高内
- 惊云下载系统edit.asp文件存在SQL注入漏洞,后台存在任意文件上传漏洞。惊云下载系统以前有个漏洞好象在user.asp,不知现在修补没
- 2001年到2003年,亚洲交友中心的免费会员女2美金男1美金,各类的点击冲浪邮件等赚钱联盟数不胜数,那时候可以说就是个拣美金的时代。03年
- 博客广告的策略基本有两种形式:定向传播策略与交互传播策略。根据商业博客的不同特点,文案的写作要求也有所不同。一、定向传播的广告策略和文案写作
- 根据观察,百度在今次调整上,显然不是小范围的调整,因为已经影响了大部分的关键字排名,在我的关键字优化日志中,近百个关键字显示出几乎超过一半的
- 务必记得备份自己的数据,数据无价!!!电脑型号:Thinkpad E550固态装了win10,机械硬盘打算装Ubuntu16.04固态硬盘格
- 你是否厌烦了在电脑上一张张的点击翻看照片?你有没有想过让自己的照片舞动起来?一般制作一个具有FLASH动画效果的电子相册,网友需要使用一个专
- 无论是使用手工试探还是使用安全测试工具,恶意攻击者总是使用各种诡计从你的防火墙内部和外部攻破你的SQL服务器系统。既然黑客在做这样的事情。你