整个 php 文件 returns 到数据表 ajax 调用

Entire php file returns to datatable ajax call

我试图获得服务器端数据处理的 php 响应。我预计会返回 JSON 文件,但会返回整个 php 文件。

Xampp和WAMP我都试过,但问题没有解决。 Xampp 和 Wamp 都可以在浏览器 http://localhost:8080//example.php 上毫无问题地执行 php 文件。

我的 javscript 和 php 代码如下

<script>
    $(document).ready(function() {
        $('#example').DataTable( {
            "processing": true,
            "serverSide": true,
            "ajax": {url : "example.php",
                     type: "GET",
                     dataType: "JSON"
                    },
            "columns": [
    { "data": 'chr'},
    { "data": 'pos'}
    ]
        } );
    } );
</script>

    <?php
 
// DB table to use
$table = 'homo_sapiens';
 
// Table's primary key
$primaryKey = 'dRid';
 
// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
    array( 'db' => 'chr', 'dt' => 'chr' ),
    array( 'db' => 'pos',  'dt' => 'pos'),

);
 

// SQL server connection information
$sql_details = array(
    'host' => 'localhost',
    'user' => 'root',
    'pass' => '',
    'db'   => 'XXXXX'
);
 
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP
 * server-side, there is no need to edit below this line.
 */
 
require( 'ssp.class.php' );
 
echo json_encode(
    SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns)
);


?>

http://localhost:8080/example.php上的响应:

{"draw":0,"recordsTotal":114,"recordsFiltered":114,"data":[{"chr":"chr1","pos":"631704"},{"chr ":"chr1","pos":"631714"},{"chr":"chr1","pos":"631848"},{"chr":"chr1","pos":"632344"} ,{"chr":"chr1","pos":"632461"},{"chr":"chr1","pos":"633143"},{"chr":"chr1","pos": "633300"},{"chr":"chr1","pos":"633364"},{"chr":"chr1","pos":"633839"},{"chr":"chr1", "pos":"633852"},{"chr":"chr1","pos":"633860"},{"chr":"chr1","pos":"634183"},{"chr": “chr1”,“pos”:“634249”},{“chr”:“chr1”,“pos”:“1014207”},{“chr”:“chr1”,“pos”:“1014246”},{ "chr":"chr1","pos":"1055942"},{"chr":"chr1","pos":"1311386"},{"chr":"chr1","pos":"1311563 "},{"chr":"chr1","pos":"1311637"}, .....................

网络响应的屏幕截图:

我已经卡了好几天了。非常感谢任何帮助!

确保来自您的 Javascript 的调用是通过 http 访问它并且包含主机,否则 Apache 可能无法识别它。像这样:http://localhost:8080/example.php。否则,它可能会将其作为文件读取,并且 return 您当前获得的内容都是 运行 本地的。我不确定 Datatables 如何获取信息,但可能会以这种方式设置使用原始数据,例如 .json.xml 文件,或者在您的情况下,您的 .php 文件。因此,如果没有 http://localhost,它可能会像读取文件一样自动处理它。

另一种可能性是您的 apache 配置可能缺少 PHP mimetype。您可以像这样将其添加到 httpd.conf 中:

AddType application/x-httpd-php .php

虽然我觉得不太可能,因为你可以正常执行它。

回来报告,如果问题解决了请告诉我!