JSONP(JSON with Padding)是一种在跨域请求中使用的方式,由于同源策略的限制,浏览器不允许跨域访问资源,但是可以通过script标签引入js文件的方式跨域获取数据。PHP中可以通过以下代码返回JSONP格式的数据:
$callback = $_GET["callback"];
$data = array("name"=>"John", "age"=>26); // 要返回的数据
$json = json_encode($data);
echo $callback."(".$json.")"; // 返回JSONP格式的数据
在上面的例子中,我们首先获取客户端传递过来的callback参数,然后通过json_encode将要返回的数据转换成JSON格式。最后通过echo输出JSONP格式的数据,即callback加上括号包裹JSON数据。
例如,客户端的请求链接为:http://example.com/jsonp.php?callback=handleData,服务器返回的数据即为:handleData({"name":"John","age":26});