几天来,我一直被这件事难住了,看了很多不同的帖子,运气都不好。
我使用jQuery进行AJAX调用,如下所示:
console.log("Sending post request");
var postData = {
"function": "connectToGame",
"name" : name,
};
console.log(postData);
$.ajax({
type: "POST",
url: 'http://localhost:8000/Cordova/server/database.php',
data: postData,
dataType: 'text',
success: function(data)
{
console.log("AJAX Success! See return:");
console.log(data);
var id = data[0]; //get id
console.log('Server returned: ' + id + ' as the id');
},
error: function(e){
console.log("AJAX Failure!");
console.log(e);
}
});
在删除了大量试图缩小问题范围的代码后,我的server/database.php目前看起来是这样的:
<?php
echo "1";
?>
在进行AJAX调用后,控制台显示如下:
database.js:21 Sending post request
database.js:26 Object {function: "connectToGame", name: ""}
database.js:34 AJAX Success! See return:
database.js:35 <?php
echo "1";
exit;
?>
database.js:38 Server returned: < as the id
我完全不明白为什么AJAX调用会返回整个PHP文件,如果有任何帮助,我将不胜感激。
您似乎没有正确配置Web服务器来解释PHP文件,并且它在没有任何处理的情况下返回其文本内容。不幸的是,您还没有提供有关服务器端设置的任何详细信息,因此很难提供帮助。但是,如果您使用的是Apache,您可以查看mod_php
,以便服务器评估您的PHP脚本,并将结果返回给客户端。因此,在尝试对http://localhost:8000/Cordova/server/database.php
进行任何客户端调用之前,请确保它有一个可用的服务器端脚本
在我的案例中,当我将php7.4升级到php8.1:时,也发生了同样的问题
在apache2中启用PHP;解决了我的问题。
a2enmod或a2dismod按名称启用/禁用模块。
从终端;执行以下cmds解决了我的问题sudo a2enmod php8.1&;sudo systemctl重启apache2
你也可以试试这个;参考编号:启用PHP Apache2