0

全新使用 AJAX 和 JSON 与 PHP 和 MYSQL。我的代码与 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>"); 
                            }
                          } 
                        });

正如我所说,这段代码适用于 localhost,但是当我将 php 文件移动到服务器并更改 url 以适应时,我开始遇到这个问题。任何帮助将不胜感激。

4

1 回答 1

0

使用JSONP,这是一种从不同域中的服务器请求数据的方法。

像这样更新您的后端脚本。(您可能还应该添加一些内容来验证这$_GET['callback']是一个有效的 javascript 函数名称)。

echo $_GET['callback'].'('.json_encode($data).');';

和这样的客户端脚本。

$.ajax({                                      
   url: 'http://appname.net/PHP/getDesserts.php',
   dataType: 'jsonp',
于 2013-04-02T19:30:39.593 回答