php 实现跨域交换数据

时间:2018-04-28 23:27:31 类型:PHP
字号:    

在A网站中,我们希望使用Ajax来获得B网站中的特定内容。如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。你可以理解为两个域名之间不能跨过域名来发送请求或者请求数据,否则就是不安全的,  这里可以通过客户端及服务后台配合的方法来一解决这个问题

客户端解决方案: 

$("#btn").on('click',function(){
		var data = {names:'庄子'};
		$.ajax({
			type :'post',
	        url  :'http://www.ncyateng.com/test/test',
	        data :data,
	        dataType: 'jsonp',
	        crossDomain: true,
	        jsonp:"callBack",  //获取数据的函数, 服务后台接收时的名字要一致
	        success:function(res){
	        	alert(res.names);
	        	console.log(res);
	        }
		})
	})

JS解析上面返回的数据

let data = res.data; //ajax返回的数据类型
function jsonCallback(json){
    return json;
}
var jsonObj = eval(data);
//这里的jsonObj得到的就是jsonCallback里面的内容


服务端操作:

$names = isset($_POST["names"])?$_POST["names"]:"哈哈";
		$jsonp = $_GET['callBack'];//get接收jsonp自动生成的函数名
		$arr = array(  
		    'names' => $names
		);
		echo $jsonp.'('. json_encode($arr). ')'; //jsonp函数名包裹json数据