无法将json数组从PHP传递给JQuery

时间:2015-09-29 22:22:17

标签: php jquery arrays json ajax

我一直在尝试将一个简单的数组从PHP传递给JQuery。以下是我在HTML / JS中的相关函数:

function myQuery() {

 var xmlhttp = new XMLHttpRequest();
 var url = "sandbox.php";

 xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   myFunc(xmlhttp.responseText);
  }
 }
 xmlhttp.open("GET", url, true);
 xmlhttp.send();

}

function myFunc(response) {
 var arr = JSON.parse(response);
 document.getElementById("demco").innerHTML = arr[0];
}

对于PHP,我尝试过:

<?php
 $arr = [4,7,2];
 echo json_encode($arr);
?>

<?php
 $arr = array(4,7,2);
 echo json_encode($arr);
?>

根据我的调试器,它每次都在JSON.parse(响应)失败。这里的代码有什么问题?我尝试运行数组[4,7,2],通过http://json.parser.online.fr/并没有遇到任何问题。我在我的智慧结束时,帮助我SE!

编辑:

从控制台: 在X行的PHP中解析错误 其中X是包含以下内容的行:     $ arr = [4,7,2]; 未捕获的异常:SyntaxError:JSON.parse:无法解析值:

在http://中的myFunc(响应)的Y行,第2列引发错误    var arr = JSON.parse(response); 从http://localhost/sandbox.html中的()中的第Z列第4行调用:    myFunc的(xmlhttp.responseText);

2 个答案:

答案 0 :(得分:0)

请将输出页面标题设置为application / json以清楚地完成。 只需要在JSON代码中输出。

<?php
header('Content-Type:application/json');
$arr = array(4,7,2);
echo json_encode($arr);

这将生成纯JSON输出,并且Javascript

可以轻松读取

答案 1 :(得分:0)

我在PHP文件的顶部有一个doctype标记,它正在使用JSON传递,并且正在搞砸解析。