我正在尝试编程一个在线实验,该实验使用jQuery和Ajax将一些数据发布到PHP脚本中,该脚本将数据保存到文本文件中,但是我遇到了一些问题。当我发布的数据很小(例如2kb)并且可以正确保存发布的数据时,脚本可以正常工作,但是当发布的数据变为4kb或更大时,我会收到404错误,并且PHP脚本无法在全部(没有数据保存到文件),这很奇怪。以下是相关的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可能会以某种方式进行干扰(也是因为它在本地可以正常工作),但是我不确定如何解决它。有任何想法吗?

最佳答案

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

09-25 17:09
查看更多