jQuery ajax (JSON)从PHP得到数组工作良好,但不't在web服务器上
jQuery ajax (JSON) get array from PHP works fine, but doesn't on webserver
我发现了一些类似的问题,但是没有办法解决这个问题。
function loadProject(id) {
$.ajax({
url: 'loadDrumsetData.php',
type: 'GET',
data: {
i: id
},
dataType: 'JSON',
success: function (e) {
pushLoadedData(e.bank); //create the JavaScript array
},
error: function (request, textStatus, errorThrown) {
console.log(request, textStatus, errorThrown);
}
});
}
我尝试从loadDrumsetData.php
获得数组结果。在我的本地apache上,它工作得很好。但在我的web服务器(apache)我得到这个解析器错误:
SyntaxError: JSON.parse: unexpected end of data
loadDrumsetData.php:
<?php
header('Content-type: application/json; charset=UTF-8');
error_reporting(-1);
$i=$_GET["i"];
$con=mysqli_connect("localhost","userxxx","xxxxx","drumpcdata");
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con," SELECT * FROM `session_".$i."` ORDER BY `pID` ASC ");
$soundArray = array();
$bankArray = array();
while($row = mysqli_fetch_array($result))
{
$pid = $row['pID'];
$r = $row['Row'];
$sound = $row['Sound'];
$number = $row['Number'];
$x = $row['X'];
$y = $row['Y'];
$w = $row['W'];
$h = $row['H'];
$spr = $row['Sprite'];
$pressed = $row['Pressed'];
$bankArray = [];
array_push($soundArray, [$pid, $r, $sound ,$number,$x,$y,$w,$h,$spr, $pressed]);
array_push($bankArray, $soundArray);
}
mysqli_close($con);
$encoded = json_encode(array("bank" => $bankArray));
echo $encoded;
?>
在这个话题上我将非常感谢任何帮助。知道是什么问题吗? 你确定你正在正确连接到mysql数据库吗?
首先这个不停止处理如果连接失败:
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
并尝试做查询等…
由于失败,你的服务器发送字符串而不是json,它会把事情搞砸的。
if (mysqli_connect_errno()){
echo json_encode(
array(
"Success" => false,
"Reason" => "Failed to connect to MySQL: ".mysqli_connect_error()
)
);
exit(0);
}
请尝试在你的脚本中添加一些失败控制。
查询也可能失败
相关文章:
- 套接字服务器向客户端广播,但不从两者接收
- Highcharts可以从服务器加载数据,但不能更新
- 刷新GoogleMaps tile服务器可以使用JavaScript,但不能使用GWT
- Jquery Post方法在本地工作,但在服务器上不工作
- CSS和Javascript可以在内部服务器上工作,但不能在外部工作
- HTML5视频在本地正常工作,但不在托管服务器上
- 未捕获的“类型错误: $(..).dataTable 不是在线服务器中的函数,但不是我的本地服务器中的函数
- Jquery-ui 在 Firefox 的本地主机上工作正常,但在服务器上则不能
- Javascript在本地加载,但不在服务器上加载
- 引导在本地主机上工作,但不在联机服务器上工作
- JQuery.post 从服务器获取cookie,但不在我的计算机上设置它们
- Jquery/JavaScript 在本地运行,但不在服务器上运行
- JQuery .click(function(){}) 在本地工作,但不在服务器上工作
- 在本地主机上实时更新数据,但不在实时服务器上更新(Node js + MongoDB)
- json_encode从事开发工作,但不在我的产品服务器上工作
- ASP.NET MVC捆绑包在本地工作,但不在服务器中
- Breeze-js调用元数据,但不调用't对服务器进行第二次调用
- 可以在服务器上查看自定义字体,但不能在本地查看
- NodeJS,我可以在客户端的Request Payload中看到数据,但在服务器端的Request object中看不
- Jquery在本地运行,但不在服务器上运行-typeerror$().rate不是函数