2012-07-03 3 views
1

Я пытаюсь запрограммировать онлайн-эксперимент, который отправляет некоторые данные с помощью jQuery и ajax в скрипт PHP, который сохраняет данные в текстовый файл, и у меня возникают некоторые проблемы. Сценарий отлично работает, когда данные, которые я публикую, являются небольшими (скажем, 2 кбайт) и будут правильно сохранять опубликованные данные, но когда данные в сообщении становятся 4 кбайт или больше, я получаю ошибку 404 вместо этого, а скрипт PHP не запускается на все (данные не сохраняются в файл), что очень странно. Вот соответствующий яваскрипт и PHP код:jQuery Сообщение Ajax для PHP-скрипта дает ошибку 404

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-адрес отлично подходит для небольших данных), также я попытался поставить заголовок («HTTP/1.1 200 OK»); в верхней части моего PHP-скрипта, но это тоже не работает. Хотя базой моего сайта является Wordpress, мой код эксперимента отделен от него и не требует каких-либо функций Wordpress, но на странице 404 ошибки отображается страница Wordpress 404. У меня такое ощущение, что Wordpress может каким-то образом вмешиваться (также потому, что он работает нормально локально), но я не уверен, как это исправить. Есть идеи?

+0

если у вас 404.its файл не найден. – Dgo

+0

есть у firebug? – Dgo

+0

Возможно, это связано с перенаправлением вашего запроса в .htaccess WordPress, который не знает, как обрабатывать URL-адрес для чего-то значимого. Кто-то, кто знает WordPress и как он управляет файлом .htaccess, может с надеждой помочь вам, если это так. – h00ligan

ответ

0

Ajax в WordPress обрабатывается немного по-другому, Пожалуйста, читайте здесь: http://codex.wordpress.org/AJAX_in_Plugins Эта статья будет объяснить легко было, как использовать AJAX в WordPress, как для администратора - End, а также для пользователя - конец. Даже если он называется «ajax в плагинах», на самом деле он описывает самый простой способ обработки ajax в wordpress.

0

Пожалуйста, проверьте php.ini для следующих целей:

  • post_max_size
  • memory_limit

Если какой-либо из них имеет предел 4kb, ваш запрос пост будет терпеть неудачу. Здесь memory_limit имеет приоритет над post_max_size. Как правило, memory_limit должен быть больше post_max_size.

Здесь, когда используется целое число, значение измеряется в байтах. Чтобы изменить значения в больших размерах, вы можете использовать K (кило), M (мега) и G (giga). пример 10K, 2M и т. д.

+0

Оба параметра post_max_size и memory_limit имеют гораздо более высокий предел, чем 4kb (соответственно 8MB и 64MB), поэтому, к сожалению, я не думаю, что это проблема. –

Смежные вопросы