1.  "{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}"2.  "{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}"这两个JSON格式1可以正确解析,解析2的时候就报错(SyntaxError)
这两个的区别1是真接在JS文件里符值的,2是由PHP echo输出的
现在隐约感觉是字符编码的问题
但是我的PHP JS文件已经全部保存为了UTF-8的格式
在PHP的面页里也加了header("Content-Type: text/html; charset=UTF-8");
引用JS文件时也 charset="UTF-8"包括引用这个JS文件的PHP文件也是UTF-8<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">下面是JS文件代码$.post('../BLL/UserInfoBLL.php?Method=test', {JSONdata:'dd'}, function(data){
var jd ="{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}";
var dd = JSON.parse(jd);
$.messager.show({title:'提示',msg:dd.uname});
var ss = JSON.parse(data); }, 'json');这个是PHPfunction test()
{
echo "{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}";
}

解决方案 »

  1.   

    在js 里面 alert(data);  //看弹出什么
      

  2.   

    1、你给出的两段 json 是一样的,不存在第二段不可解析的问题
    2、你 jq 的 $.post 方法有 'json' 类型声明,所以 回调函数 function(data) 中的 data 已经被转换成了对象。那再 JSON.parse(data) 自然要报错了
      

  3.   

    先把jscallback函数的data返回看看是什么??
    再调试看看
      

  4.   


    $.post('../BLL/UserInfoBLL.php?Method=test', {JSONdata:'dd'}, function(data){
                var jd ="{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}";
                    var dd = JSON.parse(jd);
                    $.messager.show({title:'提示',msg:dd.uname});
                    var ss = JSON.parse(data);        }, 'text');
    这样还是出错
      

  5.   

    返回的就是这个
    2."{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}"
      

  6.   

    调试 ajax 可不是件容易的事情,你需要一小块一小块的调试
    测试例<script type="text/javascript">
    $.post('jquery_server.php', {id:'aaa'}, function(data) {
      alert(data.uname);
      }, 'json');
    </script>jquery_server.php<?php
    echo '{"uid":"3","uname":"dfasd","upassword":"asdfsad"}';
      

  7.   

    function test()
    {
        echo '{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}';
    }
      

  8.   

    我现在重新做了一个项目,一模一样,只是在新那的时候默认整个项目为UTF-8就没有问题了,不知道有谁遇到过这样的问题啊