a.php
<?php
$arr = array(
'userinfo_base_name' =>$model['userinfo_base_name'],
'userinfo_base_sex' => $model['userinfo_base_sex'],
'userinfo_base_city' =>$model['userinfo_base_name'],
'userinfo_base_bir' => $model['userinfo_base_sex'],
'userinfo_base_introduction' => $model['userinfo_base_introduction']
);
$json_string = json_encode($arr);
echo $json_string;
?><script>
var url="a.php";
    dojo.xhrGet({   
         url: url,   
         handleAs: "text",   
encoding: "utf-8",
         load: function(responseText)   
         { 
var json =responseText;
alert(json.userinfo_base_name);
         },   
         error: function(response)   
         {   
           alert("失败");   
         }   
     });  
</script>responseText输出:{"userinfo_base_name":"\u591c\u795e","userinfo_base_sex":"\u7537","userinfo_base_city":"\u591c\u795e","userinfo_base_bir":"\u7537","userinfo_base_introduction":"good"}json.userinfo_base_name输出undefined,为什么呢?这句josn文本我验证过没有问题啊

解决方案 »

  1.   

    handleAs: "text",    修改为json看看
      

  2.   

    或者在load: function(responseText)中加一句eval("var json = responseText;");
      

  3.   

    eval("var json = "+responseText+";");
      

  4.   

    handleAs: "text",
    你调用返回的字符串,需要转换为json才可以使用.
    var myObject = eval('(' + responseText + ')');
    或者直接查看一下dodo如何将接收结果改为json.
     
      

  5.   

    var json = eval('(' + responseText + ')');