gpt4 book ai didi

php - POST 变量突然无法通过基于 jQuery 的 AJAX 调用工作

转载 作者:行者123 更新时间:2023-12-01 05:05:25 24 4
gpt4 key购买 nike

自从我迁移服务器(升级到专用服务器)以来就一直发生这种情况

基于 jQuery 的 AJAX 调用在几个月(如果不是几年)内都运行良好,但突然间它们在我的所有帐户中都停止工作了。你可以想象我的 panic 。

removefile 函数如下所示:

 function removefile(filename,folder,targetdiv) { // universal AJAX file removal function. folder MUST include '/' at the beginning for calls. 
$.post('ajax_removefile.php', {folder:folder, filename:filename },
function(data){
if(data=='1') {
$('#'+targetdiv).html(filename+' has been successfully removed.');
}
else if(data=='0') {
$('#'+targetdiv).html(filename+' is already removed - nothing more to remove.');
}
});
}

但由于某种原因,即使 Firebug 显示已成功注册正在发送的 POSt 变量,php 文件也会返回完全空的 POSt 变量。 print_r($_POST)print_r($_REQUEST) 在这两种情况下都会返回空数组。如果我将该方法更改为 GET 机制,它就可以工作 - 但我想将其保留在 POST 变量中。

最佳答案

首先,您可以在 PHP 中看到原始传入请求:

$input = file_get_contents('php://input');
var(dump($input);

这将证明 POST 数据已到达 PHP 或在途中已被过滤。

不要忘记将 error_reporting 设置为最大值。如果您不想在 php.ini 中设置此项,可以在 PHP 源代码的开头使用 ini_set() ,或者使用 php_value 的 .htaccess (和一个整数值)。

您的 php.ini 可能有问题。我对此并不肯定,但这可能是因为您的 post_max_size 值远远高于 32 位最大整数。尽管您的 PHP 似乎位于 64 位服务器上,但这可能是问题的根源。我建议你把它从200000M改为1G。要更改此设置,您可以如上所述使用 .htaccess,然后使用 ini_get() 检查其有效性。

AJAX 查询中的 HTTP header 也可能是错误的,但这似乎不太可能,因为在错误出现之前这一侧没有任何变化。

关于php - POST 变量突然无法通过基于 jQuery 的 AJAX 调用工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6384671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com