Ich habe ein PHP-Skript, das eine XML-Datei für einen Ajax-Aufruf generieren soll. Es erzeugt diese Fehlermeldung:PHP-Fehler "Header bereits gesetzt" in Zeile 1 des Skripts
Warnung: Headerinformationen nicht geändert werden können - Header bereits von (Ausgabe gestartet unter /home/ocp/public_html/sites/all/modules/bookDisplay/getVersions.php:1) in/home gesendet /ocp/public_html/sites/all/modules/bookDisplay/getVersions.php on line 2
das merkwürdige ist, dass der Start des pHP-Skript sieht wie folgt aus: es gibt nirgendwo auf der Leitung So
<?php
header('content-type:application/xml;charset=utf-8');
1 für jeden Header gesendet werden, bevor ich versuche, sie erneut in Zeile 2 zu senden! Alle Diskussionen, die ich über ähnliche Probleme gefunden habe, sprechen über zusätzliche Leerräume, aber ich habe überprüft und dreifach überprüft, und es gibt keine zusätzlichen Zeilen oder Leerzeichen.
ist das Skript von einer Jquery Ajax() Funktion aufgerufen, die wie folgt aussieht: irgendwie Senden Header, die im Widerspruch zu den gesendeten Header in der PHP-Datei
function getVersions(){
var bookSelected = $.data(document.body, 'book');
$.ajax({
cache:"false",
type: "GET",
dataType: "xml",
url: "sites/all/modules/bookDisplay/getVersions.php",
data: "book=" + bookSelected,
success:function(xml){
}
});
}
Ist die Jquery-Funktion? Ich habe versucht, die "dataType" -Deklaration zu entfernen, und das wird die Fehlermeldung los. Aber dann kommt die Antwort als text/html zurück, nicht als xml. Wie kann ich eine richtige XML-Antwort auf den Ajax-Aufruf erhalten, ohne dass der Fehler "Header bereits gesendet" ist?
Überprüfen Sie, ob vor dem ' Php'-Tag Whitespace vorhanden ist. –
Haben Sie sich die Codierung der Datei angesehen? Es ist möglich, dass die Header gesendet werden. – Ikke
möglich Duplikat von [PHP-Skript kann keine Header senden, da Header bereits gesendet wurden, aber Zeichen außerhalb des Skripts sind] (http://stackoverflow.com/questions/920330/php-script-cant-send-headers-because -headers-have-already-sent-but-are-cha) – mario