JSON:是一种字符串数据格式
JSONP:JSON with Padding,填充式JSON,是一种手段,可以绕过XHR的跨域限制
JSONP手段的原理:
在客户端动态的创建一个script标签,代替XHR对象,指定script.src向服务器发起请求,请求的PHP页面除了返回需要的数据外,还需要填充一个指定的函数名。
header('Content-Type: application/javascript');
$json = json_encode($data);
echo $cb . '(' . $json . ')';
2.jQuery中发起JSONP请求
jQuery中的$.getJSON()和$.ajax()可以使用XHR发起同域的请求,也可以使用SCRIPT标签发起跨域请求。
同域下的请求:
$.getJSON('xx.php', fn)
$.ajax({ url: 'xx.php', success: fn})
跨域请求——JSONP:
$.getJSON('http://其它域名/xx.php?callback=?', fn)
$.ajax({
url: ' http://其它域名/xx.php',
dataType: 'jsonp',
success: fn
});