2013-11-04 48 views
1

我有这个JavaScript文件调用一个PHP文件来返回一个JSON字符串。 Chrome开发工具在JavaScript代码中将第10行的错误抛出。我知道这个错误与丢失的括号有关,但是对于我和另外3个查看它的人来说,语法是正确的。未捕获的语法错误。未经输入的末尾

var request = new XMLHttpRequest(); 
var listings = []; 
var json; 
var url = "getListing.php"; 
request.open("GET", url, true); 
request.send(); 
request.onreadystatechange = function(e) 
{ 
if(request.readyState == 4){ 
    json = JSON.parse(request.responseText); 

    for(var x = 0; x < json.length; x++){ 
     var list = new listingInfo(); 
     list.category = json[x].category; 
     list.date = json[x].dateListed; 
     list.description = json[x].description; 
     list.id = json[x].listingID; 
     list.title = json[x].title; 
     list.userID = json[x].userID; 
     listings.push(list); 
    } 
} 
console.log(listings); 
} 

这里是php文件

<?php 
session_start(); 
$con = mysql_connect("localhost", "listAdmin", "hermes"); 
if(!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("GregsList", $con) 
    or die("Unable to select database:" . mysql_error()); 

$result = mysql_query("SELECT * FROM Listings WHERE userID = '$_SESSION[userID]' ORDER BY dateListed DESC"); 

#converts to json 
$rows = array(); 
while($r = mysql_fetch_assoc($result)) 
{ 
     $rows[] = $r; 
} 

#If you want to see if correct json is printing use ---> print json_encode($rows); 

return json_encode($rows); 
?> 
+0

其替换return json_encode($rows);而不是错误所在的json内容,是吗? –

+0

日志request.responseText看看是否有效 – farmer1992

+0

可以请你插入一个console.log JSON.parse之前:console.log(request.responseText) –

回答

2

request.readyState == 4是不够的,你应该添加request.status == 200 在你的PHP脚本print json_encode($rows);

+0

这不起作用 – Carter

+1

你应该在发送请求之前注册回调函数request.onreadystatechange = function(e)request.send() –

+0

这样做。仍然得到相同的错误 – Carter

相关问题