对PHP和MYSQL使用AJAX和JSON完全陌生。我的代码与localhost工作,但从000webhost上的PHP文件没有返回任何东西。只是想知道是否有任何必要的代码,我错过了这里的外部服务器,或者我是否必须添加额外的代码,因为000webhost本身(虽然我不认为这是情况)。下面是我的一个PHP文件的代码:
<?php
include 'dbconfig.php';
$con = mysql_connect($dbhost,$dbuser,$dbpass);
$dbs = mysql_select_db($dbname, $con);
$result = mysql_query("SELECT * FROM `desserts`");
$data = array();
while ( $row = mysql_fetch_row($result) )
{
$data[] = $row;
}
echo json_encode( $data );
?>
(这只是一个测试文件,所以我不担心sql注入或类似的任何东西)
下面是检索数据的JavaScript代码:
$.ajax({
url: 'http://appname.net/PHP/getDesserts.php',
data: "data",
dataType: 'json',
success: function(rows)
{
for(var i in rows)
{
var row = rows[i];
var startname = row[1];
var startprice = row[2];
var startpagelink = row[4];
$('#main_content').append('<b><a href="'+startpagelink+'">'+'<img id="sammich" src="sammich.jpg">'+'</br>'+startname+'</br><font color="400000">£'+startprice)
.append("</font><hr /></a></b>");
}
}
});
正如我所说的,这段代码与本地主机一起工作,但是当我将php文件移动到服务器并更改url以适应时,我开始得到这个问题。
使用JSONP,这是一种从不同域的服务器请求数据的方法。
像这样更新后端脚本。(你可能还应该添加一些东西来验证$_GET['callback']
是一个有效的javascript函数名)。
echo $_GET['callback'].'('.json_encode($data).');';
客户端脚本如下:
$.ajax({
url: 'http://appname.net/PHP/getDesserts.php',
dataType: 'jsonp',