Я использую плагин jQuery Form и ajaxSubmit. Но когда дело доходит до возвращаемого значения, я получаю этот (с двумя пустыми строками впереди, но они здесь отрезаны).Недопустимый XML при возврате AJAX
<?xml version="1.0" encoding="UTF-8"?>
<elements>
<success>
<value>282</value>
</success>
</elements>
ajaxSubmit вызов имеет типа данных: "XML" и заголовок на возвращении является правильным, но Аякс останавливается с ошибкой "Invalid XML". Я думал, что две пустые строки неверны, но даже обрезка не удалит их. XML-генерация выглядит следующим образом:
$output = new XMLWriter();
$output->openMemory();
$output->setIndent(true);
$output->startDocument('1.0', 'UTF-8');
$output->startElement("elements");
if (isset($theID)) {
$output->startElement("success");
$output->startElement('value');
$output->text($theID);
$output->endElement(); //value
$output->endElement();
}
$output->endElement(); //elements
$output->endDocument();
$xml = $output->outputMemory(true);
header('Content-type: text/xml; charset=utf-8');
print trim($xml);
У кого-нибудь есть идея, что здесь может быть неправильным?
EDIT: Вот Javascript, но, как это работает хорошо (даже с заголовками, я не показал его в первую очередь):
$('#formNewForm').ajaxSubmit({
dataType: 'xml',
beforeSubmit: function() {
// something
},
error: function (jqXHR, textStatus, errorThrown) {
// something
},
success: function (responseXML) {
// something
}
});
Возможно, вы захотите опубликовать свой JS. – Utkanos
Этот XML проверяет. Пустые строки не должны иметь значения. Пожалуйста, разместите свой javascript-код, который создает запрос и генерирует исключение. –
Вы сняли сгенерированный XML со вкладки «Net» в инструментах разработчика вашего браузера? Если нет, возможно, стоит дважды проверить, что он действительно идентичен. –