Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP获取数据时出现JavaScript问题_Javascript_Php_Json_Fetch - Fatal编程技术网

从PHP获取数据时出现JavaScript问题

从PHP获取数据时出现JavaScript问题,javascript,php,json,fetch,Javascript,Php,Json,Fetch,我是PHP新手,我正在尝试将数据从PHP提取到JavaScript。当我这样做时,JavaScript总是给我相同的错误“位置0处JSON中的意外标记

我是PHP新手,我正在尝试将数据从PHP提取到JavaScript。当我这样做时,JavaScript总是给我相同的错误“位置0处JSON中的意外标记<”。我不知道该怎么办。我被卡住了…救命!十)

这是密码

JavaScript

 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被输出,你需要知道它是什么,这样你就可以知道它在你的代码中来自哪里。我想我知道你的意思,但目前你的答案会让不熟悉这个问题的人感到困惑,即使解决方案可能是正确的。请编辑您的答案,使其更加具体和清晰。