我正在尝试编写一个在线实验,该实验使用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可能会以某种方式干扰(也因为它在本地工作正常),但我不知道如何解决它。有什么想法吗?
答案 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
(千兆)。示例10K
,2M
等。