客户端
$(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内容.")";