在ajax请求中使用json数据格式 超、凢脫俗 2022-07-14 15:54 206阅读 0赞 ## 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函数
还没有评论,来说两句吧...