2017-10-05 1 views
0

Ich habe einen Express-basierten Server ausgeführt und es verwendet BodyParser.json() und BodyParser.text() zur Pipeline hinzugefügt. Nun stellen einige Benutzer eine POST-Anfrage an die Endpunkte dieses Servers mit JSON-Payload, aber ohne Angabe von "content-type: application/json" im Anfrage-Header. Das führt dazu, dass der Body der Anfrage von bodyParser ignoriert und daher nicht in die Antwort einbezogen wird.Wie erkenne ich den Inhaltstyp der POST-Nutzdaten, wenn der Inhaltstyp nicht angegeben ist?

Frage: Wie kann ich in meiner Express-App den Inhaltstyp von POST-Körper erkennen, wenn keine bereitgestellt wird? Gibt es Standardbibliotheken, die den Body-Inhalt akzeptieren und seinen Mime-Typ zurückgeben?

Antwort

2

Aus den bodyParser Dokumentationen zu: https://www.npmjs.com/package/body-parser

bodyParser.json ([Optionen])

Returns Middleware, die json parst nur und sieht nur auf Anfragen, bei denen der Content-Type-Header den Typ Option Spiele . Dieser Parser akzeptiert jede Unicode-Kodierung des Körpers und unterstützt das automatische Aufblasen von Gzip- und Deflate-Kodierungen.

Optionen

Die json Funktion Objekt eine optionale Optionen nimmt, dass eine der folgenden Tasten enthalten:

strenge

Wenn auf true gesetzt ist, wird nur Arrays und Objekte akzeptieren; Wenn false akzeptiert, akzeptiert JSON.parse alles. Der Standardwert ist wahr.

Vielleicht hilft Ihnen die Einstellung strict auf false.

Verwandte Themen