从PHP获取数据时出现JavaScript问题
我是PHP新手,我正在尝试将数据从PHP提取到JavaScript。当我这样做时,JavaScript总是给我相同的错误“位置0处JSON中的意外标记<”。我不知道该怎么办。我被卡住了…救命!十) 这是密码 JavaScript从PHP获取数据时出现JavaScript问题,javascript,php,json,fetch,Javascript,Php,Json,Fetch,我是PHP新手,我正在尝试将数据从PHP提取到JavaScript。当我这样做时,JavaScript总是给我相同的错误“位置0处JSON中的意外标记
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
}
};
xmlhttp.open("GET", "data.php", true);
xmlhttp.send();
PHP
<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";
$myJSON = json_encode($myObj);
echo $myJSON;
我想你遇到了对象问题
对象$myObj需要在使用前进行初始化
我已经更新了代码(初始化了对象),请使用php页面上的以下代码来解决问题
<?PHP
$myObj = new StdClass();
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";
$myJSON = json_encode($myObj);
echo $myJSON;
显然,为XMLHttpRequest返回的响应不是一个错误。如果您的PHP代码示例已完成,PHP很可能(*)在输出JSON字符串之前会回显一个E_警告
错误,尽管您的代码可以工作。相关问题及解决方案。最简单的检查方法是在浏览器的开发工具(所有主要浏览器都支持)中查看原始响应。如果响应包含JSON字符串以外的任何内容,JSON.parse()
将抛出错误
(*)这取决于您的错误报告设置请相应地标记您的问题。使用您当前的标签,整个社区都会阅读这个问题(从中可以看出,大量的人无法胜任Javascript/PHP);相反,你可以用正确的标签缩小潜在受众的范围,这样你也会吸引更多相关受众。几乎可以肯定的是,PHP要么抛出错误(因此不返回JSON),要么返回一些HTML以及JSON。注意,它抱怨@ADyson是的,我知道了。但我找不到解决这个问题的办法。有什么共同的原因吗?我的评论已经解释了可能的原因。你有什么不明白的吗?您需要按照我建议的方式(使用网络检查器)去检查其中哪一个正在发生。如果出现错误,您需要知道它是什么,然后才能修复它。如果有额外的HTML被输出,你需要知道它是什么,这样你就可以知道它在你的代码中来自哪里。我想我知道你的意思,但目前你的答案会让不熟悉这个问题的人感到困惑,即使解决方案可能是正确的。请编辑您的答案,使其更加具体和清晰。