Warum besteht jQuery darauf, dass mein einfacher Text nicht "wohlgeformt" ist?

7

Ich mache einen AJAX-Aufruf, um einen einfachen Text abzurufen:

%Vor%

Wenn ich die Anfrage mache, bekomme ich den folgenden Fehler:

  

Fehler: nicht gut ausgebildet   Quelldatei: file: ///projects/foo/programData.txt? _ = 1259694590361   Zeile: 1, Spalte: 2

Warum versucht jQuery meinen Klartext zu verarbeiten und wie bekomme ich es zum Stoppen?

    
James A. Rosen 01.12.2009, 19:12
quelle

5 Antworten

11

Laden Sie die Seite in Ihrem Browser über HTTP oder öffnen Sie sie einfach als normale Datei? Beginnt die Adresse der Seite, auf der das Javascript ausgeführt wird, mit http: oder file:? Ich vermute, dass es letzteres ist, und Ajax ruft in dieser Situation anders an (siehe Antwort von tvanfonsson unten). Wenn Sie eine Webanwendung erstellen, die später über HTTP bereitgestellt wird, versuchen Sie, Ihre Seite mit einem lokalen HTTP-Server auszuführen.

    
Jaanus 01.12.2009, 19:16
quelle
11

Firefox versucht, die Datei als HTML zu analysieren, bevor sie sie sogar an jQuery zurückgibt.

Es gibt mehrere Gründe, warum es versuchen könnte, dies zu tun. Wenn, wie Jaanus vorgeschlagen hat, Sie eine file: // oder chrome: // URL verwenden, dann hat sie keinen MIME-Typ und nimmt HTML an. Oder Ihr HTTP-Server könnte den falschen MIME-Typ zurückgeben.

Ab jQuery 1.5.1 gibt es eine mimeType-Option, um den zurückgegebenen MIME-Typ zu überschreiben, den Firefox sieht. So können Sie Folgendes tun:

%Vor%

Doc auf MimeType-Option ist um Ссылка

Und hier ist ein Hintergrund dazu, was auf der Firefox-Ebene abläuft: Ссылка

    
studgeek 18.04.2011 00:59
quelle
3

Beim Öffnen einer lokalen Datei über XMLHttpRequest erhalten Sie andere Antwortcodes als bei Verwendung einer HTTP-Anfrage. Ich vermute, dass, da Sie eine lokale Datei öffnen, jQuery den Antwortcode erstickt und denkt, dass es ein Fehler ist, weil es nicht 200 OK ist.

Referenz

  

Beispiel: Nicht-synchrone HTTP-Anfrage

     

Trotz seines Namens kann XMLHttpRequest für Nicht-HTTP-Anfragen verwendet werden. In diesem Beispiel wird gezeigt, wie Sie eine Datei aus dem lokalen Dateisystem abrufen können.

%Vor%
  

Das Wichtigste, was hier zu beachten ist, ist, dass der Ergebnisstatus anstelle von 200 mit Erfolg verglichen wird. Dies liegt daran, dass die Datei- und FTP-Schemata keine HTTP-Ergebniscodes verwenden

    
tvanfosson 01.12.2009 19:23
quelle
0

Unterstützte Typen sind:

%Vor%

Vielleicht sollte "html" anstelle von "text" verwendet werden, da jQuery anscheinend nichts analysiert, wenn Sie html als Typ angeben.

    
Mark Byers 01.12.2009 19:15
quelle
0

jQuery scheint dieses Problem nicht bei chrome und ie8 zu haben.

    
Dave.Sol 12.01.2010 19:46
quelle

Tags und Links