1.前端页面(使用Jquery的getJSON函数,可实现跨域) 说明:html和php页面都使用gbk编码 function item(num,username){ var user =encodeURI(username);//在ajax里中文传递要编码(js使用utf8格式) $.getJSON("getitem.php?callback=?",{ num:num, //注意结尾的逗号,前面是参数名,后面是参数值 user:user }, function callback(json){ var str=""; for(var i=0;i<json.length;i++) alert(decodeURI(json[i].name)+json[i].age);//编码后的中文传回来时需要解码 } ); } 2.后端页面(php实现) $callback = $_GET["callback"]; //不可少 $num = $_GET["num"]; $user=iconv("utf-8","gbk",urldecode($_GET["user"]));//ajax传过来的user参数要先解码,再转码成gbk //我们假设这里使用$num和$user两个参数实现了一些业务逻辑,最后生成一个数组表示一些人的姓名和年龄 /*$rs=array( array('a'=>'张三','b'=>'21'), array('a'=>'李四','b'=>'22'), array('a'=>'王五','b'=>'23') );*/ $arr = array(); foreach ($rs as $row) $arr[] = array('name' => urlencode(iconv ('gbk', 'utf-8', $row['a'])),'age' => $row['b']); //此处需要对中文转码成uft8格式再编码,因为ajax请求中json无法识别中文 $json = json_encode($arr); //将php数组转成json格式 echo $callback . "(" . $json . ")"; //json数据要用()括号括起来,此段代码将信息返回给前端js的callback函数