跨域

201 阅读1分钟

引言:

简单说跨域就是A网站调用B网站的程序,获取对应的数据;但是受制于同源策略,这样是不可行的,但是有时候我们有时候又需要这样的情境进行使用

同源策略:

同源?若地址里面的协议、域名和端口号均相同则属于同源。浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。

如何跨域?

1. jsonp(前端方案)

1-1.使用jsonp时必须使用$.ajax()方法
    
    $.ajax({
        url:'http://www.a678.com/a.php';
        type:'get',         //*必须设置方式为get
        dataType:'jsonp',   //*必须设置数据处理方式jsonp
        jsonp:'fn',         //*必须设置访问参数
        success:function(msg){
            alert(msg);
        }
    })
    
1-2.对应php后台
    
    $str = $_GET['fn'];    //接收jsonp参数
    $arr = array('id'=>1000,'name'=>'zs','age'=>20);
    $s = json_encode($arr);//转化为字符串
    echo $str."($s)";      //使用固定格式拼接结果并输出: [如: jsonp参数."(jsonp字符串)";]
    


2.CORS跨域(php端解决方案)
    <!--页面头部添加-->
    header("Access-Control-Allow-Origin:*");         // * 允许所有网站访问
    header('Access-Control-Allow-Methods:POST,GET'); //允许访问该网站的方式