2016-05-05 16 views
2

Ich baue eine custom dynamicValue extension für Pfote. Ich kann jedoch keine Kopfzeile in der evaluate Methode festlegen. Siehe den folgenden Beispielcode:Javascript-Erweiterung Fehler: Kann keine Änderungen vornehmen

evaluate(context) { 
    const request = context.getCurrentRequest(); 
    request.setHeader('Content-Type', this.contentType); // <-- this gives warning 
    return this.createSignable(request); // This returns a base64 string. 
} 

Ich erhalte die Warnung sagen Javascript extension error: Cannot perform modifications und der Header nicht gesetzt ist. (Wenn ich ausrufe request.setHeader Anruf, ich bekomme keine Warnungen) enter image description here Kann mir bitte jemand helfen, dieses Problem zu lösen?

Antwort

1

Dies ist korrekt, Sie können Setter (setzen Sie keinen Wert) in einem dynamischen Wert verwenden. In der Tat ist die Art, wie Paw dynamische Werte bewertet, asynchron, und da mehrere Auswertungen gleichzeitig stattfinden können, wäre es unmöglich, die Änderungen aufzuzeichnen. Aus diesem Grund verweigert Paw einfach Änderungen und keine Änderung bleibt während der Auswertung bestehen.

In der documentation wird angegeben, dass diese Methoden (wie setHeaders) nur für Importeuererweiterungen verfügbar sind. Entschuldigen Sie die Unannehmlichkeiten!

Ich denke, um zu erreichen, was Sie versuchen zu tun, würden Sie zwei dynamische Werte eine in der Authorization Header und eine Menge in der Content-Type Header gesetzt.

Alternativ werden wir in Zukunft Postprozessor-Anfragen hinzufügen, so dass Sie die berechnete Anfrage mutieren können, um sie für weitere Änderungen an den Server zu senden.

+1

Danke Micha! Genau das habe ich getan. erstellt zwei dynamische Wertheader. Anyways danke für dieses tolle Tool. Ich freue mich auf die 'post-processor'-Funktion. – apostopher

Verwandte Themen