Я тестирую jQuery ajax post метод на локальном сервере Apache 2.2 с PHP 5.3 (совершенно новый в этом вопросе).Вот файлы, которые находятся в одной папке.
html body (библиотека jQuery включена в заголовок):
<form id="postForm" method="post">
<label for="name">Input Name</label>
<input type="text" name="name" id="name" /><br />
<label for="age">Input Age</label>
<input type="text" name="age" id="age" /><br />
<input type="submit" value="Submit" id="submitBtn" />
</form>
<div id="resultDisplay"></div>
<script src="queryRequest.js"></script>
queryRequest.js
$(document).ready(function(){
$('#s').focus();
$('#postForm').submit(function(){
var name = $('#name').val();
var age = $('#age').val();
var URL = "post.php";
$.ajax({
type:'POST',
url: URL,
datatype:'json',
data:{'name': name ,'age': age},
success: function(data){
$('#resultDisplay').append("Value returned.<br />name: "+data.name+" age: "+data.age);
},
error: function() {
$('resultDisplay').append("ERROR!")
}
});
});
});
post.php
<?php
$name = $_POST['name'];
$age = $_POST['age'];
$return = array('name' => $name, 'age' => $age);
echo json_encode($return);
?>
После ввода двух полей и нажатия кнопки «Отправить» вызывается метод успеха с добавлением текста, но значения, возвращаемые из сообщения ajax, не определены.
И затем после менееЧерез секунду текстовые поля очищаются, а текст, добавленный в div, исчезает.Не похоже, что это обновление страницы, так как нет пустой страницы.
Что здесь происходит?Я уверен, что это глупая ошибка, но Firebug ничего не говорит мне.
ОБНОВЛЕНИЕ:
после проверки Firebug Net, он показывает, что статус возврата POST равен 200, но он возвращает 3 раз ожидаемого объекта JSON:
{"name":"asd","age":"123"}{"name":"asd","age":"123"}{"name":"asd","age":"123"}