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实现跨域,这对于前端来说是极大的福音了,这个技术被现在大多数浏览器所普遍支持,因为跨域已经是普遍的要求,浏览器肯定会逐渐流出适当的‘后门'出来专门用以跨域。

浏览器支持情况

Apache中配置支持CORS(跨域资源共享)实例

经本人测试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>


标签:Apache,CORS
0
投稿

猜你喜欢

  • 应用服务器的常见安全管理漏洞

    2009-05-28 11:08:00
  • QQ注册帐户总数达9.9亿 同时在线突破8000万

    2009-10-12 09:42:00
  • 通过Google AdSense 广告使闲置资源收益最大化 (3)

    2009-07-08 14:17:00
  • VMware仅主机模式访问外网的方法

    2021-12-22 04:57:36
  • 造化弄人:苹果市占率可能在Win7上市后上升

    2009-10-14 07:56:00
  • Google推出广告联盟新平台 整合DoubleClick

    2008-07-02 13:19:00
  • 江礼坤:如何通过网站树立品牌形象

    2009-11-09 09:39:00
  • 服务器09年排序 HP、浪潮蝉联两大阵营冠军

    2010-03-08 09:28:00
  • 圈里圈外 是个人奋斗还是公司上班

    2008-04-16 13:42:00
  • 怎样在xp下安装配置iis[图文教程]

    2008-02-12 16:02:00
  • 星际争霸2 Beta版已局部破解:单人用户界面

    2010-03-04 08:47:00
  • Linux系统下FTP服务器如何实现安全性

    2008-08-12 09:31:00
  • Linux 添加开机启动方法(服务/脚本)

    2023-06-27 17:23:59
  • 获取Discuz论坛登录用户名、用户组、用户ID等

    2010-12-14 14:53:00
  • Zabbix监控交换机设置方法

    2022-12-25 11:56:23
  • 更换虚拟主机、IP对网站优化与排名的影响

    2010-03-26 21:16:00
  • 百度视频重金购买版权 年内预算将高达2亿元

    2010-03-07 09:22:00
  • 在Ubuntu上搭建一个基于webrtc的多人视频聊天服务实例代码详解

    2023-11-04 23:53:07
  • Linux 中的export与alias命令详解

    2022-06-03 00:34:22
  • 学生站长该如何创业

    2008-01-21 12:22:00
  • asp之家 网站运营 m.aspxhome.com