Nicht erfasste SyntaxErrror: Unexpected token ILLEGAL in Chrom
Ich habe da ein problem innerhalb des jQuery ajax
Funktion. Der folgende code funktioniert im Mozilla aber nicht bei IE oder Chrome, wenn ich versuche, das problem zu identifizieren mit Developer Tools in chrome erhalte ich die Fehlermeldung:
Uncaught SyntaxError: Unexpected token ILLEGAL \n
$.ajax.success
und wenn ich drauf klicke leitet er mich auf die var obj = JSON.parse(data);
Linie.
function getdata(){
$.ajax({
type:"GET",
url: "https://gdata.youtube.com/feeds/api/users/TheSyndicateProject/playlists?v=2&alt=jsonc",
data: "",
success: function(data) {
var obj = JSON.parse(data);
displayPlaylists(obj);
}
});
}
BEARBEITEN:
Ich habe eine Lösung gefunden, die funktioniert in chrome, aber immer noch nicht im IE
function getdata(){
$.ajax({
type:"GET",
url: "https://gdata.youtube.com/feeds/api/users/TheSyndicateProject/playlists?v=2&alt=jsonc",
dataType:"json",
success: function(data) {
displayPlaylists(data);
}
});
}
den Zusatz von dataType:"json" bedeutet, dass die Funktion erwartet json-Daten zurückgegeben werden, und daher analysiert, die es bei der Ankunft (es ist äquivalent zu der Verwendung von jQuery.parseJSON), aber wie gesagt ist diese Lösung immer noch nicht funktioniert, im IE
- Versuchen Sie, eine Verbindung zu : gdata.youtube.com/feeds/api/users/TheSyndicateProject/...
- Mit der Chrome-debugger können Sie die Ausgabe als JSON-Objekt als gut. Wählen Sie unter Netzwerk die Daten-Ressource, abgerufen wurde, und finden Sie eine JSON-tab. Kann Chrome analysiert werden, richtig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
set dataType json und browser wird automatisch Parsen von json für Sie, zu sehen, ob es für Sie arbeitet
Da jQuery bereits vorausgesetzt, dass er JSON (aus dem HTTP-header),
data
bereits ist als JSON übergeben.So was passiert, ist, dass Sie über
JSON.parse
auf ein Objekt (JSON).Dieser fais mit dem gleichen Grund:
weil die
{}
wird ein string:ist kein gültiges JSON an alle.
Also, einfach entfernen Sie die
JSON.parse
.Meine javascript-linter bedeutet, dass es ein unicode-Zeichen in die JSON-Daten, die es drosseln auf. Sollte dies nicht der Fall, so ist es ein gültiges JSON, aber dieses bit:
Scheint die Mühe, die Verursacher. Ich bin mir nicht 100% sicher, dass tho, als firefox zu sein scheint in der Lage zu analysieren, die Daten trotzdem. Das unicode-Zeichen scheint auch fehl am Platz, aber das könnte ich sein.
Durchaus ironisch, ich habe das gleiche problem in Chrome in der letzten Woche, aber ich vermute, dass es nicht nur mit Chrome sondern bei jedem browser.
Chrome Javascript-Debugger einen Haltepunkt auf das wie, wo Sie füllen die var 'obj' und überprüfen Sie, ob "data", hat mehr als ein Objekt enthalten innerhalb des Arrays. In diesem Fall, sind Sie wahrscheinlich versuchen, Zugriff auf das Objekt, das im inneren ist der erste index, der die position Ihrer Daten-Objekt.
Wenn Sie geschickt eine anonyme json-Objekt vom server aus auf die Seite zugreifen, der erste index, statt die Daten direkt.
Etwa so:
EDIT:
Ich gedebuggt Ihren link selber und nach dem Test weiter, ich fand, dass Sie nicht sogar brauchen, um zu analysieren das Objekt, wirklich.
Blick auf mein Beispiel oben, Daten weiterzugeben.Daten.die Elemente Ihrer var obj und es wird geladen, mit der Sie alle Ihre Objekte aus dem array.
Sehen, ob das hilft.