Ich verwende jQuery Form Plugin und ajaxSubmit. Aber wenn es um den Rückgabewert geht, bekomme ich diesen (mit zwei leeren Reihen davor, aber sie wurden hier abgeschnitten).Ungültiger XML-Code, während AJAX-Rückgabewert gültig ist
<?xml version="1.0" encoding="UTF-8"?>
<elements>
<success>
<value>282</value>
</success>
</elements>
Der ajaxSubmit Anruf einen Datentyp hat: "xml" und den Header auf Rückkehr ist richtig, aber die Ajax stoppt mit einem "Ungültige XML" Fehler. Ich dachte, die zwei Leerzeilen sind falsch, aber selbst ein Trimmen wird sie nicht entfernen. XML-Generation sieht wie folgt aus btw:
$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);
Wer eine Idee hat, was möglich hier falsch sein könnte?
EDIT: Hier ist die Javascript, aber wie es gut geht (auch mit Header, ich habe es nicht in erster Linie zeigen):
$('#formNewForm').ajaxSubmit({
dataType: 'xml',
beforeSubmit: function() {
// something
},
error: function (jqXHR, textStatus, errorThrown) {
// something
},
success: function (responseXML) {
// something
}
});
Sie könnten Ihren JS veröffentlichen möchten. – Utkanos
Das XML validiert. Leerzeilen sollten keine Rolle spielen. Bitte posten Sie Ihren JavaScript-Code, der die Anfrage erstellt und die Ausnahme auslöst. –
Haben Sie den generierten XML-Code von der Registerkarte "Net" in den Tools Ihres Browsers entfernt? Wenn nicht, lohnt es sich zu überprüfen, dass es wirklich identisch ist –