引言:
简单说跨域就是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'); //允许访问该网站的方式