XML добавляет много дополнительной разметки для большинства запросов AJAX. Если вы ожидаете какой-то список с объектами данных, отправьте их в формате JSON.
Я использовал JSON для получения довольно больших массивов с данными.
Прежде всего, JSON - это просто нотация объектов Javascript, означающая, что запрос Ajax будет запрашивать строку, которая фактически будет оцениваться как объект Javascript.
Некоторые браузеры предлагают поддержку анализа JSON из коробки. Другим нужна небольшая помощь. Я использовал эту маленькую библиотеку , чтобы проанализировать текст responseText во всех веб-приложениях, которые я разработал, и у меня не было проблем с ним.
Теперь, когда вы знаете, что такое JSON и как его использовать, вот как будет выглядеть код PHP.
$response = [
"success" => true, // I like to send a boolean value to indicate if the request
// was valid and ok or if there was any problem.
"records" => [
$dataEntity1, $dataEntit2 //....
]
];
echo json_enconde($response );
Попробуй и посмотри, что это вторит. Я использовал синтаксис объявления массива php 5.4, потому что это круто! :)
При запросе данных через Ajax вы должны сделать:
var response
,xhr = getAjaxObject(); // XMLHttp or ActiveX or whatever.
xhr.open("POST","your url goes here");
xhr.onreadystatechange=function() {
if (xhr.readyState==4 && xhr.status==200) {
try {
response = JSON.parse(xhr.responseText);
} catch (err) {
response = {
success : false,
//other error data
};
}
if(response.success) {
//your data should be in response
// response.records should have the dataEntities
console.debug(response.records);
}
}
}
Резюме:
- Для разбора JSON требуется небольшая помощь через библиотеку JSON2
- PHP может отправлять карты в формате JSON
- Булево значение «Успех» широко используется как флаг «успешно / неуспешно»
Кроме того, если вы используете jQuery, вы можете просто установить свойство dataType: "json" в вызове $ .ajax, чтобы получить ответ JSON в обратном вызове успеха.