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文件里符值的,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\"}";
}
2、你 jq 的 $.post 方法有 'json' 类型声明,所以 回调函数 function(data) 中的 data 已经被转换成了对象。那再 JSON.parse(data) 自然要报错了
再调试看看
$.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');
这样还是出错
2."{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}"
测试例<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"}';
{
echo '{\"uid\":\"3\",\"uname\":\"dfasd\",\"upassword\":\"asdfsad\"}';
}