Antworten auf deine Fragen:
Neues Thema erstellen

Fehler bei Verwendung von JSON aus AJAX in Javascript

Hansi2016

Nicht mehr ganz neu hier

Hallo,

ich lasse mir über eine AJAX-Anfrage ein Array als JSON zurückgeben:
Code:
$rueckmeldung = array("verfuegbar"=>$verfuegbar, "fehler"=>'Sie sind bereits abgemeldet!');
echo json_encode($rueckmeldung);
Dieses JSON-Objekt möchte in in Javascript mit
Code:
jsverfuegbar = JSON.parse(xhr.responseText);
Javascript-tauglich in ein Array zurückwandeln. Dabei erhalte ich jedoch den Fehler "SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data".
Ich habe bereits lange gegoogelt, jedoch ohne Erfolg. Meine Dateien sind alle mit "UTF-8 ohne BOM" kodiert:

Testweise habe ich mir in Javascript mit
Code:
jsverfuegbar = {"verfuegbar":"4","fehler":"Sie sind bereits abgemeldet!"};
console.log(jsverfuegbar);           
console.log(xhr.responseText);           
console.log(JSON.parse(xhr.responseText));
mal angeschaut, was so ankommt. Das Ergebnis der Console:
Code:
Object { verfuegbar: "4", fehler: "Sie sind bereits abgemeldet!" }
    int(1)
{"verfuegbar":"4","fehler":"Sie sind bereits abgemeldet!"}
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Ich habe auch schon mit einfachen, doppelten (und gar keinen) Anführungszeichen experimentiert, aber ohne Erfolg.

Wer kann mir bitte auf die Sprünge helfen ;) ?

Gruß

Hansi
 

hub

nicht ganz neu hier

Moin,
für eine umfassende Antwort ist das zu wenig Code. Aber:
in deiner Variable "jsverfuegbar" ist kein text, der geparst werden kann, sondern ein Objekt. Ich vermute mal, das dein xhr.responseText schon das geparste Objekt beinhaltet (zu entnehmen deinem Logauszug) ...

Gruß Ulli
 

Hansi2016

Nicht mehr ganz neu hier

Eventuell habe ich mich mißverständlich ausgedrückt. Ich versuche es nochmal:
Ich rufe per AJAX eine PHP-Datei auf. In dieser Datei erstelle ich ein Array, wandele es in JSON um und lasse es zurückgeben:
Code:
$rueckmeldung = array("verfuegbar"=>$verfuegbar,"fehler"=>'Sie sind bereits abgemeldet!');
echo json_encode($rueckmeldung);
In der aufrufenden Datei erhält die Variable response den Rückgabewert von AJAX:
Code:
response = xhr.responseText;           
console.log(response);       
console.log(JSON.parse(response));
Die erste Konsolenausgabe zeigt den reinen Rückgabewert, bei Ausgabe der geparsten Rückgabe kommt es zum Fehler:
Code:
int(0)
0{"verfuegbar":2,"fehler":"erfolgreich eingebucht"}
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
Oder einfach gefragt: Wie schaffe ich es, aus der aufgerufenen PHP-Datei mit AJAX (und JSON?) ein Array zurückzugeben und dieses Javascript-tauglich zu konvertieren?

Schönen Abend noch

Hansi
 

Hansi2016

Nicht mehr ganz neu hier

habe jetzt mal ganz simple Testdateien erstellt:
Code:
<script>
    var xhr = new XMLHttpRequest();
    xhr.open("get","rueckgabe.php", true);
    xhr.onreadystatechange = function() {
        if(xhr.readyState === 4) {
            console.log(xhr.responseText);
            response = JSON.parse(xhr.responseText)
            console.log(response.name);
            console.log(response.alter);
        }
    };
    xhr.send();
</script>
und
Code:
<?php
$rueckgabe = array("name"=>'müller',"alter"=>20);
echo json_encode($rueckgabe);
?>
Damit funzt es, werde also morgen den Fehler suchen...

Gruß

Hansi
 

Hansi2016

Nicht mehr ganz neu hier

Ich schätze, ich habe den Fehler gefunden!

Das int(1) bzw. int(0), was in den Console-Ausgaben ersichtlich war, gehört zu einem var_dump, welches ich zu Testzwecken in der aufgerufenen PHP-Datei hatte. Ich wäre niemals davon ausgegangen, daß dies Bestandteil des zurückgegebenen JSON-Objektes ist/wird, da ich ja mit "echo json_encode($rueckmeldung);" lediglich den Inhalt von $rueckmeldung zurückgeben wollte.
Jetzt tritt der Fehler nicht mehr auf und ich kann weitermachen.

Danke für Eure Unterstützung

Hansi
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.613
Beiträge
1.538.346
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben