JSONP可以说是为了实现跨域请求操作而诞生的。
在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,比如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
为jsonp请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存GET请求的时候,指定这个回调函数名。
示例:
HTML页面布局:
<div id="divCustomers"></div>
JS脚本代码:
script type="text/javascript"> $.getJSON("jsonp.PHP?callback=?",function(data) { // 返回的是一个数组 var html = '<ul>'; for(var i = 0; i < data.length; i++) { html += '<li>' + data[i] + '</li>'; } html += '</ul>'; $('#divCustomers').html(html); }); </script>
PHP程序:
header('Content-type: application/json');
//获取回调函数名 $jsoncallback = htmlspecialchars($_GET ['callback']); // 获取url参数名 //json数据 $json_data = '["customername1","customername2"]';
//输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")"; // 这个是返回的数据
谢谢关注!