getJSON:NetworkError:500内部服务器错误

时间:2012-08-11 10:55:25

标签: php javascript mysql json

我编写了一个使用 getJSON 的代码(见下文)。 FireBug返回以下错误消息:

"NetworkError: 500 Internal Server Error - http://localhost:10088/test/myquery.php?query=SELECT%20tm%20FROM%20schedule%20WHERE%20val=%27BT009%27;"

我无法弄清楚这个错误的原因。任何帮助都非常感谢。

PS我在MySQL查询浏览器中测试了这个SQL查询。它返回了3行。

mainPage.php

<script>
function updateList(){
   var query = "SELECT tm FROM schedule WHERE val='BT009';";

   $.getJSON(
           'myquery.php?query='+query,
           function(data) 
           {
               alert(data);
           }   
   );

}

$(document).ready(function() {
    updateList();
});

</script>

myquery.php

<?php
include_once 'include/connect_db.php';

if (isset($_GET['query'])) {
    $query = $_GET['query'];

    $condb = connectDB();
    $result=execute_query($query);
    closeDB($condb);

    $rows = array();

    if ($result && mysql_num_rows($result)) {
        while($row = mysql_fetch_array($result)) {
            $rows[] = $row['tm'];
        }
    }   

    var_dump($rows);

    echo json_encode($rows);

} else {
    echo json_encode("Failed");
}
?>

3 个答案:

答案 0 :(得分:2)

Internal Server Error (Code 500)是服务器端错误,与AJAX无关。这通常是由糟糕的服务器端代码引起的。您可能需要检查语法,并尝试通过浏览器查看页面。该页面可能还打印了一些错误细节。

答案 1 :(得分:0)

我猜想服务器很难理解你的查询参数。尝试编码:

'myquery.php?query='+encodeURIComponent(query)

就像其他人所说的那样,你所做的并不安全。您不应该为要执行的服务传递查询!

编辑:另一种可能性是你没有将三个参数传递给$ .getJSON()。尝试:

$.getJSON(
   'myquery.php',
   {query: query},
   function(data) {
      alert(data);
   }   
);

答案 2 :(得分:0)

尝试使用firebug。在浏览器中执行此代码时运行firebug。它将给出错误的原因以及需要更正的位置。希望它会有所帮助。