我正在尝试使用以下jQuery代码来调用我的php脚本:
<html>
<head>
<script src="parser/js/jquery-1.10.2.js" type="text/javascript"></script>
<script src="parser/js/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript">
$ (document).ready(function() {
currCity = "ROME (FCO)";
$.ajax({
url: 'parser/php/get_data.php',
type: "GET",
data: currCity,
dataType: "json",
success: function(array){
alert ("AJAX succeeded!");
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.status + " " + textStatus);
console.log(errorThrown);
}
});
});
</script>
</head>
<body>
<div id="test">Text</div>
</body>
</html>
即使我只是使用一个简单的php脚本,就像这个(没有数据类型和成功函数中的回调值):
<?php
echo "Got here";
?>
我收到了以下错误:
200 parsererror
demo.html (line 17)
Error: Invalid XML: <?php echo "Got here"; ?>
所以这是我试图解决的第一个错误,Ajax似乎将我的php脚本识别为xml。 现在这是我需要运行的实际php脚本。从数据库中提取一些数据,创建一个两级数组来存储它们,然后用JSON将该数组返回给Ajax。
<?php
require 'mysql_login.php';
if (isset($_GET['currCity'])) {
$str = $_GET['currCity'];
echo "Got the value: " + $str;
}
$db = new mysqli( $mysqlhost, $mysqluser, $mysqlpwd, $airplaneDB) or die ("Connection to database failed".$db->connect_error);
$result = mysqli_query($db, "SELECT * FROM Airplanes ORDER BY time") or die ("Problem retreiving data from database.");
$planes = array();
while ($row = mysqli_fetch_array ($result, MYSQLI_ASSOC)) {
$flightData = {$row['flightID'], $row['flightLink'], $row['orig'], $row['dest'], $row['time']};
array_push($planes, $flightData);
}
echo json_encode($planes);
?>
在那里,我似乎无法识别JSON,这是错误:
200 parsererror
demo.html (line 17)
SyntaxError: JSON.parse: unexpected character
return window.JSON.parse( data );