SyntaxError: invalid label mittels jQuery.ajax()
Ich versuche, mich ein Ajax-Aufruf zu meinem server mit den folgenden jQuery nennen:
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://iceworld.sls-atl.com/api/&cmd=time",
success: function (data) {
console.log("success");
console.log(data);
},
error: function (error) {
console.log("error");
console.log(error);
},
});
Bekomme ich die Daten erwarte ich von dem browser, aber Firebug sagt immer "SyntaxError: invalid label", wie unten gezeigt:
So, was mich verwirrt ist der Grund, warum der error-callback aufgerufen wird, statt auf Erfolg. Ich Frage mich, was ich falsch gemacht habe hier.
- Sieht aus wie gültige JSON zu mir, noch bekomme ich
Unexpected token :
in Chrom. - Schaut die Antwort aus, die URL es kommt, wie
text/HTML
nichttest/JSON
. Obwohl Sie hoffen würde, dass jQuery könnte mit fertig werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
JSONP-Daten zurückgegeben werden müssen, im format:
callback( jsonObject )
. Das ist, warum Sie werden immer eininvalid label
Fehler. Es erwartet Sie eine Funktion, nicht ein JSON-Objekt. Müssen Sie zum ändern der server-code zu wickeln Sie den return-Wert mit dem Namen der callback-Funktion. Der name wird automatisch Hinzugefügt, um die Anfrage per jQuery, wenn Sie JSONP-Anfrage. Wenn du dir das verlangen, Sie sollten so etwas wie dieses:Ihr Skript muss die
callback
parameter verwenden, um wickeln Sie die Daten, also für dieses Beispiel würde es so Aussehen:Wenn Sie Zugriff auf den server aus dem gleichen Ursprung, Sie könnten einfach verwenden JSON statt.
{"data":"mydata"}
, zurückcallbackName({"data":"mydata"})
.Es ist schwer eindeutig zu beantworten ohne weitere details und ohne die Antwort vom server gesendet. Aber ein Blick auf dies, wie es aussieht ist der server wieder gültige JSON; nicht eine JSONP-wrapper-Funktion. Versuchen Sie eine Veränderung der
dataType
zuJSON
(keine Versprechen wenn, bräuchte man mehr info um sicher zu sein)Ihre Rückgabe von json-Wert sollte im format function_name(json_data).
wie diese:
erstellen Sie eine Funktion als " zurück' oder den gleichen Namen geben mit json-Rückgabe Wert. und die zurück Funktion wird automatisch aufgerufen, wenn es eine Antwort.
hop es funktioniert gut,