jQuery $ .ajax Antwort leer, aber nur in Chrome

8

Ich habe jeden Weg der Forschung ausgeschöpft, um diesen zu lösen, so dass hoffentlich jemand anders an etwas denken wird, was ich nicht getan habe.

Relativ einfache Einrichtung, ich habe eine HTML-Seite mit etwas Javascript, die eine Ajax-Anfrage an eine URL (in der gleichen Domain) macht die Java-Web-App im Hintergrund macht ihre Sachen und gibt eine teilweise HTML-Seite (kein HTML, Kopf- oder Body-Tags, nur der Inhalt), die an einer bestimmten Stelle auf der Seite eingefügt werden sollen.

Alles klingt ziemlich einfach und der Code, den ich habe funktioniert in IE, Firefox und Safari, aber nicht in Chrome. In Chrome ist das Zielelement einfach leer und wenn ich mir die Ressourcenanforderung in den Chromes-Entwicklertools ansehe, ist auch der Inhalt der Antwort leer.

Alles sehr verwirrend, ich habe eine Unzahl von Dingen versucht, um es zu lösen, und ich habe einfach keine Ideen mehr. Jede Hilfe würde sehr geschätzt werden.

%Vor%

All dies wird in einem $ (Dokument) .ready (function () {});

ausgeführt

Prost, Jim

@Oleg - Zusätzliche Informationen angefordert, ein Beispiel für die Antwort, die der Ajax-Aufruf erhalten könnte.

%Vor%     
roguepixel 18.06.2010, 10:24
quelle

3 Antworten

1

Chrome hat sich mit lokaler Dateisicherheit auf seinen eigenen Fuß gestellt, also keine AJAX-Dateien mit relativen Pfaden: Ссылка

    
JustAMartin 17.10.2010, 10:05
quelle
2

Ich habe gerade ein ähnliches Problem gelöst und dachte, ich würde meine Lösung posten, falls sie für jemand anderen von Nutzen ist.

Nur Firefox und Chrome zeigten eine leere Ajax-Antwort, es schien also ein Cross-Domain-Problem zu sein, aber alles war auf der gleichen Domain.

Es stellte sich heraus, dass das "www.", das ich überflüssigerweise und dumm in meine Ajax-URL programmiert hatte, dafür verantwortlich war. Hätte ich einen relativen Pfad benutzt, wäre alles in Ordnung gewesen.

Ich hatte meine Testseite zu diesem bestimmten Zeitpunkt als " Ссылка " geöffnet, ohne "www.", also behandelten Firefox und Chrome es als eine andere Domäne. Navigieren zu " Ссылка " führte dazu, dass der Ajax-Aufruf in allen Browsern funktioniert.

Also, vorausgesetzt, du hast geschrieben:

url: '/ pfad / zu / local / url'

Wie die Konvention, wenn wir unsere Wege nicht offenbaren wollen, konnte ich nicht anders, als mich zu fragen, ob Sie tatsächlich einen absoluten Pfad geschrieben haben, so wie ich ...?

    
Matheson 11.09.2010 21:38
quelle
1

Ich habe Ihren Quellcode genommen und ein schnelles Testszenario eingerichtet, konnte Ihr Problem jedoch nicht replizieren. Es funktioniert für mich sowohl in Firefox (3.6.3) als auch in Chrome (5.0.375.70). Ich habe es sowohl lokal als auch auf einem Remote-Server versucht.

Also ist Ihr Code höchstwahrscheinlich nicht schuld. Aber ich denke auch, dass es sich in der Regel nicht um ein Chrome-Problem handelt.

Andere Leute scheinen das allerdings schon einmal bemerkt zu haben. Das Ändern des Inhaltstyps hatte in meinem Testszenario jedoch keine Auswirkungen. Es funktioniert sogar, wenn ich Content-Type auf image/jpeg setze.

In den JQuery-Foren gab jemand ein anderes Verhalten an ob er seine Anwendung lokal oder auf einem Remote-Server ausführt. Wenn dies für Sie der Fall wäre, könnten Sie HTTP-Anfrage- und Antwort-Header vergleichen, um das Problem zu finden.

    
Oliver Salzburg 22.06.2010 18:52
quelle