我正在尝试编程一个在线实验,该实验使用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的最简单方法。