我一直在尝试将一个简单的数组从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);
答案 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传递,并且正在搞砸解析。