jQuery中常用getJSON来通过 HTTP GET 请求载入 JSON 数据,将其转换为JSON对象,如果成功,则执行回调函数。原型如下:
jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据。
url: 必需。规定将请求发送的哪个 URL
data : 可选。规定连同请求发送到服务器的数据
callback: (可选) 载入成功时的回调函数
该函数是简写的 Ajax 函数,等价于:
$.ajax({ url: url, data: data, success: callback, dataType: json });
注意:该函数以后的代码将在这个回调函数执行前执行。
下面通过一个简单示例说明:
(1)定义的服务器脚本文件(返回JSON数据)http://www.phpernote.com/test.php 源代码如下:
<?php $jarr=''; if($_GET['userid']==23&&$_GET['username']=='phpernote'){ $arr=array("name"=>"php程序员教程网", "url"=>'http://www.phpernote.com/'); $jarr=json_encode($arr); } echo $jarr;
注意两点:
第一:在返回客户端之前,先用PHP函数json_encode将要返回的数据进行编码。
第二:返回到客户端用的是echo,而不是return。
下面是核心的客户端代码:
<script language="javascript" type="text/javascript" src="http://www.phpernote.com/js/jquery.js"></script> <script language="javascript" type="text/javascript"> function getJSON(){ $.getJSON("http://www.phpernote.com/test.php", {userid:'23',username:'phpernote'}, function(response){ alert(response.url); }); } </script> <input type="button" name="btn" id="btn" value="test" onClick="javascript:getJSON();"/>
由于在PHP中是用JSON编码返回值,所以此处必须用getJSON去调用PHP文件,从而获取数据。同时可以注意到,经由getJSON得到的数据已经变成了一个对象数组,可以直接使用 response.name,response.url 获取返回值。