Header und HTTP-Parameter für eine einzelne Anfrage in Restangular setzen

8

Ich versuche, Restangular für Datei-Upload-Post-Anfrage zu verwenden, ich möchte die gleiche Funktionalität wie unten in Restangular erreichen. Ich war mir jedoch nicht sicher, wie ich den Inhaltstyp und die transformRequest-Funktion nur für diese bestimmte Anfrage festlegen sollte. Wenn ich es richtig verstehe, setzt setDefaultHeader es für alle nachfolgenden Anfragen. Gibt es einen anderen Weg?

%Vor%     
user760226 22.01.2014, 19:23
quelle

3 Antworten

8

Sie haben hier zwei Situationen, den POST zum Erstellen eines neuen Elements oder den PUT zum Bearbeiten eines Elements:

%Vor%     
fernandopasik 15.05.2014 06:42
quelle
6

Um die Header für eine einzelne Anfrage festzulegen, müssen Sie nur ein Objekt hinzufügen, das den Namen und den Wert der Header als Argument für .post (), .get () oder die von Ihnen benötigte Methode enthält / p>

Ссылка

%Vor%

Was die transformRequest betrifft, von der ich mir nicht sicher bin, hatte ich noch nie mit so etwas zu tun, das ist das Einzige, was ich in der Dokumentation finden konnte:

Ссылка

Aber das scheint es für alle Anfragen zu setzen, die nicht das sind, was Sie wollen, aber es ist zumindest etwas.

Wie auch immer, hoffentlich wird dir das helfen, das zu bekommen, was du willst.

Bearbeiten:

Da die meisten Anforderungstypen in restangular einen Abfrageparameter und dann die Header haben, die Sie in einem leeren Abfrageparameterobjekt und dann den Headern übergeben müssen, wurde das Beispiel aktualisiert, um dies anzuzeigen.

    
JDWardle 28.01.2014 01:19
quelle
5

Da dies der erste Treffer bei Google für dieses Problem ist, lesen Sie Ausgabe 420 in der Restangular Issue Tracker.

Grundsätzlich hat das neueste Restangular eine Funktion withHttpConfig , um Optionen $http direkt vor dem Absetzen einer Anfrage zu setzen.

Wenn Sie eine Route mit einer URL wie etwa example.com/api/users/:id/picture haben, die einen mehrteiligen Upload mit einem Bild für einen bestimmten Benutzer akzeptiert, können Sie Folgendes tun:

%Vor%

Standardmäßig transformiert Angular alle mit $http gesendeten Daten in JSON. Die transformRequest -Konfiguration ersetzt diese Standardumwandlung einfach mit einem NOP .

    
joshperry 30.04.2014 00:59
quelle