jQuery Ajax发布到PHP脚本会出现404错误

时间:2012-07-03 07:30:14

标签: php jquery ajax wordpress

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

experiment.js:

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

saveData.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适用于小数据),我也尝试过放置标题('HTTP / 1.1 200 OK');在我的PHP脚本的顶部,但这似乎也不起作用。虽然我的网站的基础是Wordpress,我的实验代码是独立的,不需要任何Wordpress功能,但它显示的404错误页面是Wordpress 404页面。我有一种感觉,Wordpress可能会以某种方式干扰(也因为它在本地工作正常),但我不知道如何解决它。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

请检查您的php.ini以获取以下信息:

  • post_max_size
  • memory_limit

如果其中任何一个限制为4kb,您的发布请求将失败。此处memory_limit优先于post_max_size。通常,memory_limit应大于post_max_size

这里,当使用整数时,该值以字节为单位进行测量。要更改较大尺寸的值,您可以使用K(千克),M(兆)和G(千兆)。示例10K2M等。