Zum Inhalt springen

TYPO3 4.7:JQuery($.getJSON) und IE9 Fehler

Erstellt am 9. Mai 2012 · 1 Antwort · letzte Antwort am 10. Mai 2012

Tags: PHP, JavaScript & AJAX, Frage

wwwowtschik ·

Ich habe sehr seltsames Problem in Zusammenspiel mit TYPO3 4.7, jQuery 1.7.2 und JSON und IE9 (XAMP Win7) zusammen.
Der Fehler tritt nur in InternetExplorer auf, in anderen Browsern funktioniert alles ohne Probleme.

Ich rufe mit jQuery

$.getJSON

meinen Ajax-Controller auf, welcher mir den Antwort als JSON liefert.

Mein JSON-Antwort sieht nach dem Aufruf aus IE wie folgt aus:

{  "popLayerEditPhoto":"<div class=popLayerOverlay>"}

laut IE-Konsole, also zwei Leerzeichen am Anfang vor dem String, die nicht von mir kommen. Ist das vielleicht ein BOOM??

Beim Aufruf Rufe ich auch die Repository-Klasse (abgeleitet von

Tx_Extbase_Persistence_Repository

).
In der Repository kommt dann irgendwann der Aufruf

$query->equals('uid', $id)

und nur nach diesem Aufruf passiert der Fehler, also diese zwei Leerzeichen werden eingefügt. Rufe ich eine Zeile vor diesem

$query->equals('uid', $id)

Aufruf das

echo json_encode(hier mein array)

auf, ist der JSON-String richtig.

Hat Jemand vielleicht eine Idee???

Danke im Voraus!!

wwwowtschik ·

Hat keiner eine Idee??

Sobald ich in der Klasse Tx_Extbase_Persistence_Query einer der Funktionen aufrufe (equals, like ...)

	public function findUserBy($id){
		$query = $this->createQuery();
		$query->matching(
			$query->logicalAnd(
				$query->equals('id', $id),
				$query->equals('deleted', 0)
			)
		);
		return $query->execute();
	}

dann wird in meinem HTTP-Response ein oder zwei Leerzeichen nach dem ersten Zeichen hinzugefügt und macht damit den JSON-Objekt ungültig.

Rufe ich z.B. so auf

	public function findUserBy($id){
		$query = $this->createQuery();
		return $query->execute();
	}

ist alles OK.