| 

.NET C# Java Javascript Exception

2
Moin allerseits.

Ich versuche gerade innerhalb einer Funktion Folgendes aufzurufen:
$.getJSON("meinedatei.php", function(data) {
alert(typeof data);
});


Das funktioniert überall einwandfrei - außer im IE 7. Dort bekomme ich komischerweise den Typ function zurückgeliefert.

Hat jemand schon so ein Verhalten beobachtet? Ggf. kann ich noch mehr Informationen zum Programmumfeld geben...
News:
10.05.2011
johny7 521 1 8
Wie sieht denn das charset deiner "meinedatei.php" aus?
Dustin Klein 10.05.2011
Was meinst Du mit charset?
johny7 10.05.2011
PROBLEM IST GELÖST!
Dustin Klein 11.05.2011
Das habe ich auch schon gemerkt. Das Problem ist: Die Lösung befindet sich nicht hier. Wat nu?
johny7 11.05.2011
Und was war die Lösung?
Floyd 11.05.2011
Hat sich erledigt. Steht im anderen Thread ;)
Floyd 11.05.2011
Entweder offen lassen, oder die Antwort akzeptieren, mehr Auswahl haben wir ja nicht.
Dustin Klein 11.05.2011
Wenn diese Funktion hier:
http://codekicker.uservoice.com/forums/21227-general/suggestions/319162-beantwortung-eigener-fragen?ref=title
endlich mal implementiert würde, könnte johny7 seine eigene Antwort mit dem Verweis auf den Thread mit der Lösung akzeptieren, und der Kas wär bissen...
Matthias Hlawatsch 12.05.2011
3 Antworten
2
Das sind zwar etwas wenig Angaben, aber habe ein paar Infos zum generellen Gebrauch von getJSON(). ALso, als allererste solltest du versuchen, deinen Inhalt mit JSONLint zu validieren.

Sollte diese Validierung korrekt sein, kann dieses Problem weitere Ursachen haben. Ich habe noch ein kleines Workaround gefunden, welches wohl schon anderen geholfen hat:

$.ajax({
url: "meinedatei.php",
cache: false,
dataType: "json",
success: function(data) {
//action here.
});


Hierbei ist vor allem das cache: false wichtig, da der IE sonst oftmals die Datei aus dem Cache liest, statt sie erneut vom Server zu holen. Hoffe, dass das im Ansatz hilfreich ist. Wenn du noch ein paar Details hast, gerne her damit, ich werde dann nach der Mittagspause meine Antwort editieren ;-)
10.05.2011
Dustin Klein 2,9k 2 9
Scheinbar scheitert es an der Konversion nach JSON. Ich habe jetzt einmal $.ajax ohne dataType 'json' benutzt. Dann bekomme ich ein String. Nur wenn ich diesen konvertieren will, scheitert es (und ich bekomme eine Funktion zurück). Das Problem taucht aber nach wie vor nur im IE 7 auf.
johny7 10.05.2011
Wo genau scheitert es denn an der Konversion nach JSON? Welchen Content_Type hast du in deiner PHP?
Dustin Klein 10.05.2011
Ich habe schon verschiedene Content-Types ausprobiert. Zuletzt habe ich den string ausgeliefert und dann versucht manuell umzuwandeln. Es gibt da allerdings ein grundsätzliches Problem, welches ich [url=/fragen/javascript-IE-7-JSON-parse-Problem-json-ie7/1905]in einer eigenen Frage[/url] beschreibe.
johny7 10.05.2011
Hast du mal meinen Ansatz ausprobiert?
Floyd 10.05.2011
Hat sich schon erledigt ;)
Floyd 10.05.2011
Habe ich. Das Problem ist, wenn ich einfach data ausgebe, sehe ich tatsächlich die Funktion, die den String in JSON umwandeln soll. Es nützt natürlich nichts, diese Funktion 'durch sich selbst' zu jagen...
johny7 10.05.2011
0
probier mal folgendes:

if(typeof data === 'function')
data = jQuery.parseJSON(data.toString());
10.05.2011
Floyd 14,6k 3 9
0
Einmal für alle:

Die Lösung steht haben wir an anderer Stelle gefunden.
11.05.2011
johny7 521 1 8

Stelle deine Javascript-Frage jetzt!