PHP-Antwort parsen: Uncaught SyntaxError: Unerwartetes Token

7

Ich benutze AJAX, um ein PHP-Skript aufzurufen. Das einzige, was ich aus der Antwort analysieren muss, ist eine zufällige ID, die vom Skript generiert wird. Das Problem ist, dass das PHP-Skript eine Reihe von Fehlern verursacht. Die Fehler sind eigentlich in Ordnung und stören die Programmfunktionalität nicht. Das einzige Problem ist, dass wenn ich

ausführen %Vor%

Ich bekomme:

%Vor%

Da die PHP-Antwort mit einem Fehler beginnt:

%Vor%

Ich frage mich, wie ich PHP oder JS so ändern kann, dass es trotz der Fehler die ID auslesen kann.

PHP:

%Vor%

JS:

%Vor%

Ich weiß, dass die Warnungen behoben werden sollten, aber die Warnungen sind nicht funktionskritisch für jetzt und noch wichtiger

1) Auch wenn diese Warnungen aufgelöst werden, können neue auftauchen und der JSON sollte immer noch richtig analysiert werden und

2) Zusätzlich zu den Warnungen gibt es "Hinweise", die das gleiche Problem verursachen.

    
Ben Davidow 21.03.2014, 23:45
quelle

11 Antworten

14

Warum nicht mit der Warnung umgehen und sie beseitigen, so dass das Ergebnis vom Server tatsächlich JSON ist?

    
Kris Oye 21.03.2014 23:49
quelle
5

Es gibt mehrere Möglichkeiten, wie das gelöst werden könnte (jeder von denen würde funktionieren):

1. Fixiere deine Warnungen. :
PHP sagt etwas aus einem bestimmten Grund.

2. Deaktivieren Sie Fehlermeldung & amp; Fehleranzeige :
Am oberen Rand der Datei platzieren Sie das folgende

%Vor%


3. Verwenden Sie den Ausgabepuffer :
Ganz oben in Ihrer Datei platzieren Sie

%Vor%

Wenn Sie Ihr Datenarray haben und bereit zum Echo im Browser sind, löschen Sie den Puffer aller Benachrichtigungen Warnungen usw.

%Vor%


4. Legen Sie einen benutzerdefinierten Fehlerhandler fest :

%Vor%


5. Optional in JavaScript:
Sanitise deine Antwort, um ein JSON-Array zu sein:

%Vor%     
Ben A. Noone 29.03.2014 13:55
quelle
1

Wie alle anderen gesagt haben, sollten Sie Ihre Fehler wirklich beheben und sie entsprechend behandeln.

Dies ist etwas, das Sie unter Umständen haben, die Sie nicht kontrollieren und dennoch mit Fehlern umgehen wollen:

%Vor%     
Gustavo Rubio 25.03.2014 17:51
quelle
0

Obwohl dies das umfassendere Problem der Warnungen nicht löst, habe ich diesen Hack verwendet, um die Antwort zu analysieren:

%Vor%     
Ben Davidow 24.03.2014 18:43
quelle
0

Ich weiß, jeder hat Ihnen empfohlen, die Fehler zu beheben, ich würde zustimmen, aber wenn Sie nicht wollen, dann gibt es eine andere Lösung.

Wenn Sie eine Reihe von Warnungen erhalten und erwarten, dass neue Warnungen angezeigt werden, deaktivieren Sie einfach die Meldung von Warnungen und Hinweisen:

%Vor%     
AJReading 27.03.2014 00:41
quelle
0

Wenn ob aktiviert ist

%Vor%

Oder oben in Ihrer Datei

%Vor%     
Jan Sverre 27.03.2014 14:00
quelle
0

Ich bin mir sicher, dass es in Ihrem PHP-Code einige Fehler geben würde, da dieser Fehler kommt. Bitte überprüfen Sie einige Dinge:

  • Stellen Sie sicher, dass nicht mehr als ein echo oder print in Ihrem PHP-Code für die Druckantwort vorhanden sein sollte.
  • jQuery muss ordnungsgemäß enthalten sein.
  • Und überprüfe den anderen PHP-Code in deiner Funktion / Seite, der keine Laufzeitfehler / -warnungen erzeugen sollte, weil dadurch auch das gleiche Problem verursacht wird.

Ich sage das, weil ich Ihren Code ausprobiert habe und es funktioniert gut für mich, Sie können das auch überprüfen:

PHP-Datei: myContentPage.php

%Vor%

HTML-Datei:

%Vor%

Und zur Handhabung der Warnungen können Sie Folgendes tun:

  • Um Warnmeldungen zu überspringen, könnten Sie Folgendes verwenden:

    error_reporting (E_ERROR | E_PARSE);

  • oder fügen Sie einfach das @ -Zeichen vor jeder Zeile des PHP-Codes hinzu, von dem Sie glauben, dass eine Warnung kommen kann

Glückliche Kodierung !!

    
Deepak Goswami 28.03.2014 15:34
quelle
0

Skript verwendet in Ajax Aufruf muss einfach perfekte Konstruktion haben, wird keine Warnungen nur aus Bequemlichkeit geworfen, für die Produktion sollten Sie erros deaktiviert haben, also beheben Sie es in Entwicklung, bearbeiten Sie die Frage mit der Warnung, dass phps givin wir Ihnen helfen mit direkt auf den Punkt.

    
Mauricio Piber Fão 29.03.2014 01:43
quelle
0

1. Alternative:

Löse das Problem, das die Warnung verursacht hat. Ein gutes PHP-System sollte niemals einen PHP-Hinweis, eine Warnung oder einen Fehler anzeigen. Dies kann einige kritische Informationen offen legen.

2. Alternative:

Deaktivieren Sie einfach die Fehlermeldung, indem Sie

einstellen

error_reporting(0);

Dies wird funktionieren, aber selbst Fehler werden Ihnen verborgen bleiben.

3. Alternative:

Legen Sie eine Fehlerbehandlungsfunktion fest, die den Fehler behandelt und eine JSON-freundliche Fehlermeldung anzeigt, die keine Probleme verursacht.

Ich empfehle Ihnen auch, diese Ausnahmen zu protokollieren. Es ermöglicht Ihnen, jedes Systemproblem zu debuggen.

Meine Empfehlung?

Benutze die erste und dritte Alternative zusammen und sei glücklich!

    
Elias Soares 30.03.2014 03:27
quelle
0

Sie können Try..Catch im JavaScript-Funktionscode verwenden, wie unten gezeigt.

%Vor%

Dies funktioniert auch, wenn Ihr PHP-Code als Antwort Debug-Informationen generiert.

    
Sanjeevshrestha 31.03.2014 16:55
quelle
0

Wenn Sie den Fehler in JavaScript sehen möchten, sollten Sie den Fehler in PHP mit einem "try catch" und dem "catch" behandeln, um etwas wie "echo json_enconde ($ error);" Auf diese Weise können Sie von JavaScript analysieren.

Beispiel:

%Vor%

Ich hoffe, das hilft:)!

    
quelle

Tags und Links