大家都知道Ajax是不能进行跨域请求的,那么我们可以使用Jsonp来Ajax跨域请求
代码如下:
前端:$(document).ready(function(){
$.ajax({
type : "get",
async:false,
url : "http://192.168.1.168/jsonp/jsonp.php",
data: {name:"LiuR_Fun", age:16},
dataType : "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名
jsonpCallback:"successCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success : function(data){
alert(data[0].name);
alert(data[0].age);
},
error:function(){
alert('fail');
}
});
//简易写法
$.getJSON("http://192.168.1.168/jsonp/jsonp.php?callback=?", { name:"Fun", age:18 }, function(data){
alert(data[0].name);
alert(data[0].age);
});
});
程序代码:header('Content-type: application/json');
//获取回调函数名
$jsonCallback = htmlspecialchars($_REQUEST['callback']);
//json数据
$json_data = '[{name:"'.$_REQUEST['name'].'",age:'.$_REQUEST['age'].'}]';
//输出jsonp格式的数据
echo $jsonCallback . "(" . $json_data . ")";