在ajax请求中使用json数据格式

 

 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函数 


 

 

你可能感兴趣的:(在ajax请求中使用json数据格式)