无法将json数组从PHP传递到JQuery
我一直在尝试将一个简单数组从PHP传递到JQuery。以下是我在HTML/JS中的相关功能:无法将json数组从PHP传递到JQuery,php,jquery,arrays,json,ajax,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(
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);
?>
以及:
根据我的调试器,每次在JSON.parse(response)时它都会失败。这里的代码有什么问题?我试着运行数组[4,7,2],但没有问题。我束手无策,帮帮我
编辑:
从控制台:
PHP中第X行的解析错误
其中X是包含以下内容的行:
$arr=[4,7,2];
未捕获异常:SyntaxError:JSON.parse:无法分析值:
在中myFunc(响应)的第2列Y行引发错误http://...
var arr=JSON.parse(响应);
从中()的第4列Z行调用:
myFunc(xmlhttp.responseText) 请将输出页面标题设置为application/json,这样做很清楚。 只需要在JSON代码中进行输出
<?php
header('Content-Type:application/json');
$arr = array(4,7,2);
echo json_encode($arr);
我在PHP文件的顶部有一个doctype标记,该标记与JSON一起传递,并且破坏了解析过程。console.log(response)
我猜它不仅仅包含JSON。你是使用框架还是仅使用静态页面?它在我的Apache2服务器上工作。当它在JSON.parse
上失败时,您会得到什么确切的错误,console.log(response)
会给您什么?更新了OP和日志结果。无法解决该问题,但我创建了另一个内容几乎相同的.php文件,它工作正常。现在我在另一个项目中的另一个JSON对象上遇到了同样的问题。有什么好处?
<?php
header('Content-Type:application/json');
$arr = array(4,7,2);
echo json_encode($arr);