PHP使用ajax跨域的解决方案之CORS

由于安全的限制(同源策略,javascript只能访问同域名下的内容),如果需要进行跨域操作,那就免不了要进行跨域。

CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种解决跨域的方案。
详细的描述还请查阅:

http://www.w3.org/TR/cors/
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

比如我有两个虚拟主机(apache本地配置),www.a.com和www.b.com
现在b.com上要获取a.com的登陆信息,比如用户ID,用户名等。

在www.b.com的index.php如下:

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8" />
    <title></title>
</head>
<body>
    <div class="userInfo"></div>
</body>
<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript">
    var url = "http://www.a.com/index.php";
    $.get(url, {a : "getUserInfo"}, function(data) {
        $(".userInfo").text("Id:" + data.uid + " Name:" + data.name);
    }, "json");
</script>
</html>

在www.a.com的index.php如下:

<?php
$a = !empty($_GET['a']) ? trim($_GET['a']) : '';
 
if($a == 'getUserInfo') {
    echo json_encode(array(
        'uid' => 1,
        'name' => '测试',
    ));
} else {
    echo '';
}

在b.com的index.php中用jquery的get方法来发送请求,正常情况下会失败。
PHP下ajax跨域的解决方案之CORS - 怀素真 - 因上努力 果上随缘
那么我们只需要在a.com的index.php中添加如下代码,则b.com就可访问。

header('Access-Control-Allow-Origin: *');

访问结果如下:

Id:1 Name:测试

当然我们也可以指定可以访问的域名。

header('Access-Control-Allow-Origin: http://www.b.com');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值