getJSON:网络错误:500 内部服务器错误

getJSON: NetworkError: 500 Internal Server Error

本文关键字:错误 服务器 内部 getJSON 网络      更新时间:2023-09-26

我写了一个使用 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 行。

主页.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>

我的查询.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");
}
?>

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

我冒昧地猜测服务器难以理解您的查询参数。尝试对其进行编码:

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

就像其他人说的那样,你正在做的事情并不安全。您不应该传递查询来执行服务!

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

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

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