jQuery AJAX-Funktion - Chrom-werfen "Uncaught SyntaxError: Unexpected number"
Habe ich eine Reihe von anklickbaren Objekte auf dem Bildschirm, Objekte innerhalb von ein Stück software, die Schnittstelle über eine COM-Komponente.
Wenn ich auf einen Gegenstand den ich senden Sie den Namen des Objekts, die session-ID und das Befehl, den ich ausführen möchten.
Den code für den jeweiligen Befehl, den ich versuche umzusetzen ist eine C# basierte ASP.NET Seite:
case "myClick":
dynamic simObj = S8COM.get_SimObject(Request["id"]);
responseData = "{name:" + simObj.Name.ToString() + ",countInRoutes:" + simObj.CountInRoutes.ToString() + ",countOutRoutes:" + simObj.CountOutRoutes.ToString() + ",index:" + simObj.Index.ToString() + ",capacity:" + simObj.Capacity.ToString() + ",completed:" + simObj.Completed.ToString() + ",routeOutMethod:" + simObj.RouteOutMethod.ToString() + "}";
break;
Dies funktioniert gut für einige Objekte, andere aber nicht, das werfen einer "Uncaught SyntaxError: Unexpected number" Ausnahme.
JS-ich bezeichnen diese Besondere Funktion ist:
S8Web.Requestmanager.makeRequest({ data: { command: "myClick", id: aItem.id }, async: true, callback: function(data){
alert(data.CountInRoutes); //Do a vardump of the response
}});
Ein paar Antworten als gut, die erste funktioniert einwandfrei, während der zweite wirft das Unerwartete-Nummer Ausnahme:
jsonp1319203225074({name:Start,countInRoutes:0,countOutRoutes:1,index:5,capacity:0,completed:0,routeOutMethod:4});
jsonp1319203225066({name:Process 1,countInRoutes:1,countOutRoutes:1,index:1,capacity:1,completed:0,routeOutMethod:1});
Das einzige, was ich sehen kann, die möglicherweise Einfluss auf das Resultat ist der Leerraum zwischen "Prozess" und "1". Ist es das, was ist mit diesem Fehler?
- ist es nur im chrome-browser, der wirft diesen Fehler?
- yep... da es ein string ist, müssen Sie wickeln Sie es in Anführungszeichen..
name:'Process 1'
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie sehr gut kann einfach sein, dass Sie ein problem mit nicht ordnungsgemäß geschlossene Anführungszeichen.
Beispiel:
Da der erste parameter nicht richtig geschlossen, es wird interpretiert als 'joe', '. Das lässt 2844' als der rest der Funktion aufrufen, ohne ein führendes Angebot. Dieser Umstand wirft die Unerwartet viele Fehler.
Nicht sicher, ob dies wird Ihnen helfen, aber ich war immer die gleichen Fehler in chrome und es war wegen einer "0" sattelt mein json-Daten:
0 Rückstand noch die JSON-Daten, weil ich vergaß hinzuzufügen, ein "exit;" in meinem PHP-Funktion wurde die Handhabung der AJAX-Aufruf. Ich auch empfehlen, läuft der gleiche code in FireFox. FireFox oft hat aussagekräftigere Fehlermeldungen als chrome:
Glück!
die()
am Ende meiner PHP-Funktion und gelöst werden, dieSyntaxError: unexpected number
Problem!Nicht sicher, dass die Ursache für den Fehler, aber Bedenken Sie, dass ein serializer die Arbeit zu tun, statt der hand-Codierung. Könnte helfen, kümmern sich um unterschiedliche Interpretationen im Browser.
In diesem Beispiel habe ich ein struct mit string-Eigenschaften param1 + param2. Sie könnte leicht serialisieren, Listen Sie diese ebenfalls.
Nur Konstrukt einer einfachen Struktur, hat die Eigenschaften, die Sie benötigen.
hatte auch eine "0" in meine if-Anweisung verursacht unerwartete syntax: unerwartete Zahl in Chrom, Vergleich war:
if (bcn.length==0 && ecn.length==0 0 && corr.length==0)
extra 0, es sehen? Ich habe nicht fangen es die ersten paar Blicke auf sich.