2019-06-23
错误使用json_decode函数造成的。
弄清楚php中的json相关函数真正的作用,即参数是什么,返回值是什么,此函数的返回值是php变量,不是json编码的字符串,服务器输出给客户端的是json编码的字符串, 不应该是php变量。
你的注释写的很明白了,json_decode函数是解码json字符串的,第2个参数是true,就是把json字符串解码成数组,难怪你的ajax接收到是数组形式的文本,不是json形式的文本早数。直物神接写print_r($str)。
下面是json_decode函数的官方说明
Takes a JSON encoded string and converts it into a PHP variable.
接受一个 JSON 编码的字符串并且把它转换为 PHP 变量
示例:
<?php
$arr=array(array('name'=>'jack','sex'=>'1'),array('name'=>'陆蚂首mary','sex'=>'0'));
print_r(json_encode($arr));//把php数组编码成json字符串,输出
$str='[{"name":"jack","sex":"1"},{"name":"mary","sex":"0"}]';
print_r($str);//输出json字符串
$arr2=json_decode($str,true);//把json字符串解码成php数组
print_r($arr2);//输出php数组,会以一定的格式输出php数组
print_r(json_encode($arr2));//把php数组编码成json字符串,输出
?>
希望额能帮助你!
怎么解决?是原生ajax
应该是服务器的问题,把response Text打印到控制台看看到底是什么。另外,JSON.parse() 有严格的格式要求属性名有且必须使用双引号。
参考:网页链接
一般是服务器返回了一个html页面手败缺,例如404,500,毕辩403等错误页面
具体请查看网络返回的内容