Ajax跨域访问

Ajax跨域访问

​ Ajax跨域,简单来说就是一个网站调用另一个网站提供的数据。但是因为存在浏览器的“同源策略”,并不能直接实现。同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。跨域实现有以下方式:

1.jsonp

​ jsonp(填充式JSON或参数式JSON)是应用JSON的一种新方法,是被包含在函数调用中的JSON。可在$.ajax方法中设置dataType:jsonp

​ 前台HTML页面:

<body>
    <script type="text/javascript">
        $.ajax({
        url:'http://www.a67.com/jsonp.php',
        type:'get',//jsonp方式必须使用get方式
        dataType:'jsonp',//返回值类型必须设置为jsonp
        jsonp:'fn',//jsonp跨域的传参,是一个随机数
        success:function(msg){
            alert(msg.id+" "+msg.name);
        }
    })
    </script>
</body>

​ 后台PHP程序:

<?php
// 接收跨域的随机数
$fn = $_GET['fn'];
// 定义返回值
$arr = array('id'=>101,'name'=>'zs');
// 输出返回值
$str = json_encode($arr);
echo $fn."($str)";

2.cors

​ 使用cors策略,Cross-Origin Resource Sharing 跨域资源共享

​ 前台HTML页面:


<body>
<script type="text/javascript">
$.ajax({
url:'http://www.a67.com/cors.php',
type:'post',//类型使用get post均可
dataType:'text',//返回值类型就是一般的text
success:function(msg){
alert(msg);
}
})
</script>
</body>

​ 后台PHP程序:

<?php
// 设置http://www.alishow.com网站下的所有程序都能访问当前页面
header('Access-Control-Allow-Origin:http://www.alishow.com');

// header('Access-Control-Allow-Origin:http://www.alishow.com,http://www.ajax.com.cn');

// 设置所有网站都可以访问当前页面
// header('Access-Control-Allow-Origin:*');

// 设置POST和GET访问方式均可
header('Access-Control-Allow-Methods:POST,GET');

echo '123';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值