在 PHP 页面A.php,这样:
不存在任何问题.<?php $str='{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}'; ?>
$(document).ready(function () {
var obj = jQuery.parseJSON('{"name":"John","name1":"John1"}');
alert(obj.name);
//debugger;
//var obj1 = jQuery.parseJSON('{"total":2,"rows":"HHH"}');
var obj1 = jQuery.parseJSON('{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}');
var obj2 = jQuery.parseJSON('<?php echo $str;?>');
});
obj1 和 obj2 可以通过 jQuery 的 JSON 验证.现在添加 页面 json.php 内容如下:header('Content-Type:text/html;charset=utf-8');
echo '{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}';修改 A.php ,添加一下代码:
$.ajax({ url:"json.php",
dataType:"json",
success: function(){ alert("成功");},
error:function(){ alert("错误");}
});该代码不能通过 jQuery 的 Json 验证.提示错误如下:
"Invalid JSON: {"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}"
请大家帮我分析一下,是什么原因导致?服务器环境. Linux+PHP5
不存在任何问题.<?php $str='{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}'; ?>
$(document).ready(function () {
var obj = jQuery.parseJSON('{"name":"John","name1":"John1"}');
alert(obj.name);
//debugger;
//var obj1 = jQuery.parseJSON('{"total":2,"rows":"HHH"}');
var obj1 = jQuery.parseJSON('{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}');
var obj2 = jQuery.parseJSON('<?php echo $str;?>');
});
obj1 和 obj2 可以通过 jQuery 的 JSON 验证.现在添加 页面 json.php 内容如下:header('Content-Type:text/html;charset=utf-8');
echo '{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}';修改 A.php ,添加一下代码:
$.ajax({ url:"json.php",
dataType:"json",
success: function(){ alert("成功");},
error:function(){ alert("错误");}
});该代码不能通过 jQuery 的 Json 验证.提示错误如下:
"Invalid JSON: {"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}"
请大家帮我分析一下,是什么原因导致?服务器环境. Linux+PHP5
RE:这个步骤,我已经做了。内容如下:
{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}
这里似乎有个不可见的字符,用16进制查看编码为FF FE,这两个字节好像是文件编码标志。
把json.php中的header('Content-Type:text/html;charset=utf-8'); 这一句删掉试试。
文件编码,我重新统一保存为 utf-8但问题还是存在,不过,如果,我在 A.php 这些处理 jQuery 就不存在 json 验证是失败的问题$.ajax({ url:"json.php",
success: function(){ alert("成功");},
error:function(){ alert("错误");}
});
去掉 dataType:"json" 这个配置。添加上,就不行.
我把所有文件的 BOM 头处理了.的确可行,3Q...
一开始写的 字符串的可以了。无语了...用 PHP 动态生成有出问题了.