jQuery und JSON vs IE - SCRIPT5007: Wert der Eigenschaft konnte nicht abgerufen werden

8

Ich kämpfe darum, dass dieses Skript funktioniert. Es ist im Grunde ein einfacher Ajax-Aufruf, um Daten von einem PHP abzurufen, der einen JSON-Code zurückgibt.

%Vor%

}

Der Fehler, den ich in Internet Explorer erhalte, ist:

  

SCRIPT5007: Wert der Eigenschaft 'Updates' konnte nicht abgerufen werden: Objekt ist null oder nicht definiert

In Firefox und Google Chrome funktioniert alles.

Anfangs wurde mein Code mit .get erstellt, aber jemand schlug vor, zu .ajax - nun, es hat nicht geholfen. Ich habe versucht, mit .done (function (data)) , aber es hat auch nicht funktioniert. Ich habe auch versucht, alle Daten in meiner URL gegenüber der Daten -Eigenschaft zu senden, es funktionierte gut in FF, aber IE poppte immer noch den gleichen Fehler.Schließlich versuchte ich, PHP verschiedene Header hinzuzufügen, wie zum Beispiel header ('Content-Type: application / json'); aber es war nicht "Ich ändere nichts. Ich habe keine Ideen mehr / keine möglichen Lösungen, die ich bei stackoverflow gut gebrauchen könnte, so dass jede Hilfe geschätzt wird.

In IE ging ich zu Developer Tools, Netzwerk-Registerkarte und versuchte zu sehen, ob alles funktioniert - ja, die Anfrage wird korrekt mit allen Daten gesendet, und eine Antwort, die ich erhalte, ist JSON, genau wie es in Firefox ist:

%Vor%

was mich wirklich verwirrt, denn ich hätte gedacht, dass ein undefinierter Fehler nur passieren könnte, weil etwas aus irgendeinem Grund nicht in IE zurückgeschickt wird, aber klar: Es ist nicht der Fall. Ich bekomme mein JSON zurück. Nur IE aus irgendeinem unbekannten Grund denkt immer noch, dass Daten nicht definiert sind.

    
MarcinWolny 02.05.2013, 10:57
quelle

3 Antworten

4

Ok, ich habe endlich eine Lösung gefunden. Grundsätzlich:

  • Entfernen Sie alle vom PHP-Skript gesendeten Header. Insbesondere: Content-Type-Header. (Zum Glück scheint es, als könnten noch Sitzungen benutzt werden)
  • Verwenden Sie }).done(function ( data ) { anstelle von success: function (data) {

und das ist alles. Plötzlich fing es an zu arbeiten. Es ist sehr komisch. Scheint so, als ob die Schrotflinten-Taktik (zufällige Änderung von Bits des Codes, bis es funktioniert) tatsächlich eine gültige Art ist, Probleme zu lösen. hehehe

    
MarcinWolny 16.05.2013, 09:11
quelle
0

Ich habe einen ähnlichen json-Aufruf, der Daten zurückgibt, die wie folgt aussehen:

{"GetTombstoneDataRestResult": {"AlphaSort": "Arai Junichi", "Klassifizierung": "A & amp; D Design-Objekt" ... usw.

Mit anderen Worten, sehr ähnlich wie Ihre JSON-Daten. Um es in jQuery zu referenzieren, verwende ich den Rückrufnamen.

%Vor%

Sieht so aus, als wolltest du das auch ausprobieren:

%Vor%     
smoore4 15.05.2013 15:07
quelle
0

Sie haben ein Zeichen namens ​ in Ihrem JSON.
Siehe eine Beschreibung hier: Was ist der HTML-Zeichencode 8203?

Es ist direkt vor deinem Doppelpunkt hier "time"​:

Können Sie Ihre Ausgabe säubern und das JSON validieren und es erneut versuchen?

    
Tuan 15.05.2013 20:22
quelle

Tags und Links