2

我正在尝试编写一个在线实验,该实验使用 jQuery 和 ajax 将一些数据发布到一个 PHP 脚本,该脚本将数据保存到文本文件中,但我遇到了一些问题。当我发布的数据很小(比如 2kb)时,脚本可以正常工作,并且会正确保存发布的数据,但是当帖子中的数据变为 4kb 或更大时,我会收到 404 错误,并且 PHP 脚本无法运行all(没有数据保存到文件中),这很奇怪。以下是相关的 javascript 和 PHP 代码:

实验.js:

$.ajax({
    url: 'snippets/saveData.php',
    data: {"time": time, "experimentStimuli": experimentStimuli, "experimentPredictions": experimentPredictions, "experimentPredictionsEnd": experimentPredictionsEnd},
    type: 'POST'
    });

保存数据.php:

$_SESSION['user']['experimentStimuli'] = $_POST['experimentStimuli'];
$_SESSION['user']['experimentPredictions'] = $_POST['experimentPredictions'];
$_SESSION['user']['experimentPredictionsEnd'] = $_POST['experimentPredictionsEnd'];

foreach($_SESSION['user']['experimentStimuli'] as $key => $value) {
  foreach($value as $key2 => $value2) {
    fwrite($fh, $value2);
  }
  fwrite($fh, "\n");
}

foreach($_SESSION['user']['experimentPredictions'] as $key => $value) {
  foreach($value as $key2 => $value2) {
    fwrite($fh, $value2);
  }
  fwrite($fh, "\n");
}

foreach($_SESSION['user']['experimentPredictionsEnd'] as $key => $value) {
  foreach($value as $key2 => $value2) {
    fwrite($fh, $value2);
  }
  fwrite($fh, "\n");
}

我尝试使用绝对 URL 而不是相对 URL,但没有区别(相对 URL 适用于小数据),我也尝试使用 header('HTTP/1.1 200 OK'); 在我的 PHP 脚本的顶部,但这似乎也不起作用。虽然我的网站的基础是 Wordpress,但我的实验代码与它是分开的,不需要任何 Wordpress 功能,但它显示的 404 错误页面是 Wordpress 404 页面。我有一种感觉,Wordpress 可能会以某种方式干扰(也因为它在本地运行良好),但我不确定如何修复它。有任何想法吗?

4

2 回答 2

0

请检查您的 php.ini 中的以下内容:

  • post_max_size
  • memory_limit

如果其中任何一个的限制为 4kb,则您的发布请求将失败。这里memory_limit优先于post_max_size. 一般memory_limit应大于post_max_size

这里,当使用整数时,该值以字节为单位。要更改更大尺寸的值,您可以使用K(kilo)、M(mega) 和G(giga)。例子10K2M_

于 2012-07-03T10:46:18.163 回答
0

wordpress 中的 Ajax 处理方式略有不同,请在此处阅读:http: //codex.wordpress.org/AJAX_in_Plugins 本文将简单解释如何在 wordpress 中使用 AJAX,既适用于管理员端,也适用于用户- 结尾 。即使它被称为“插件中的 ajax ”,它实际上也描述了在 wordpress 中处理 ajax 的最简单方法。

于 2012-07-03T09:35:32.893 回答