'Unexpected token' beim AJAX-Upload von multipart / form-data in angular.js 1.3.0

8

Der folgende Code für das Hochladen von Texturen funktionierte in angularjs 1.2.26, funktionierte jedoch nicht mehr, als ich meine Webanwendung auf 1.3.0 hochstufte.

HTML-Code

%Vor%

fileModel-Richtlinie

%Vor%

Upload-Funktion - In 1.2.26 würde die Auswahl von "multipart / form-data" als Content-Type nicht funktionieren. Aber mit "undefined" als Content-Type eckig würde eine Art Magie wirken, die es zum Laufen bringen würde.

%Vor%

FEHLER:

%Vor%

Weiß jemand, wie das in der neuen Version funktioniert?

AKTUALISIEREN

Ich habe das Problem etwas eingegrenzt. Es funktioniert nicht mit 1.3.0-rc.5, aber mit der vorherigen Version (rc.4) funktioniert es. Also versuche ich gerade herauszufinden, welche Änderungen zu meinem Problem führen. Hier ist das Changelog .

    
Jonas 17.10.2014, 14:48
quelle

1 Antwort

14

Das Problem lag im Antwortheader meiner Anforderung zum Hochladen von Texturen auf der Serverseite. Zum Erstellen meiner Anwendung habe ich Spring MVC verwendet und hatte eine Anforderungszuordnung, aber ohne die produces Spezifikation:

%Vor%

Ohne Angabe von text/plain als Inhaltstyp verwendet Spring automatisch application/json als Inhaltstyp. Und dies verursacht, dass angular.js JSON.parse seit 1.3.0-rc.5 aufruft ( change ) . Mein Textur-Upload gibt eine URL zurück, die auf den Ort verweist, an dem das Bild geliefert wird. Da dies ein einfacher String ist, führte dies zu der beschriebenen Fehlermeldung. Vergessen Sie also nicht, in Ihren Serverantworten korrekte Inhaltstypen anzugeben: -)

    
Jonas 18.10.2014, 09:58
quelle

Tags und Links