2017-06-17 137 views
-2

我正在使用AJAX调用来请求服务器上的PHP文件。 PHP文件包含一些对象。正在使用JSON.parse()将结果转换为JavaScript对象。所以,问题是运行程序我看到下面的错误在浏览器控制台后:从服务器上的PHP文件获取数据作为JSON

Uncaught SyntaxError: Unexpected end of JSON input 
at JSON.parse (<anonymous>) 
at XMLHttpRequest.xmlhttp.onreadystatechange (index.php:15) 

我不知道为什么程序不能正常工作,虽然我的Apache服务器,和PHP运行良好。 我的工作程序:

的index.php:

<p id="demo"></p> 

<script> 

var xmlhttp = new XMLHttpRequest(); 

xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     myObj = JSON.parse(this.responseText); 
     document.getElementById("demo").innerHTML = myObj.name; 
    } 
}; 
xmlhttp.open("GET", "demo_file.php", true); 
xmlhttp.send(); 

</script> 

demo_file.php:

<?php 
$myObj->name = "John"; 
$myObj->age = 30; 
$myObj->city = "New York"; 

回答

1

也许你有一个警告:$ myObj没有初始化:

<?php 
header('Content-type: text/json'); 
$myObj = new stdClass; 
$myObj->name = "John"; 
$myObj->age = 30; 
$myObj->city = "New York"; 
echo json_encode($myObj); 
+0

非常感谢。我想要抱你! –

4

您可以构建在PHP JSON与json_encode()功能:

<?php 

$myObj = new stdClass(); 
$myObj->name = "John"; 
$myObj->age = 30; 
$myObj->city = "New York"; 

echo json_encode($myObj); 
+0

穆罕默德Hamedani,thnaks为您的答案。我已经知道了。但我想让XMLHTTP请求从文件中获取数据。在这种情况下,PHP文件位于服务器中,Javascript是一个客户端程序 - 这正是我在我的程序中试图做的,而且它不工作。你能帮助我吗? –

+0

你有没有想过这个问题? –