jquery的jsonp的使用

时间:2023-03-08 23:38:47
jquery的jsonp的使用

客户端

$(function(){
$.ajax({
type: "get",
async: false,
url: "http://test.com/json_data.php",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"mycall",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success: function(data){
console.log(data);
},
error: function(){
alert('fail');
}
});
});

json_data.php中的内容如下

$callbak = $_REQUEST["callback"];//接收jquery带来的回调函数名称
$jsonArr = array('key1'=>'val1','key2'=>'val2','key3'=>'val3');//要输出的数据数组
$str = $callbak . "(" .json_encode($jsonArr).")";
echo $str;

这样即完成了解决跨域的调用,需要注意的是,服务器端需要在返回的json内容的基础上加上回调函数的调用

回调函数名. "(" .json内容.")";