Die Express URL-Parameterfunktion dekodiert nicht Plus (+) als Leerzeichen

9

Wenn Sie die URL-Parameterfunktion von Express verwenden, werden die Parameter automatisch decodiert. Das heißt, Prozentcodierte Entitäten werden in ihre normale Form aufgelöst. %20 wird durch ein Leerzeichen ersetzt.

Ein Plus + wird jedoch nicht durch ein Leerzeichen ersetzt. Dies liegt vermutlich daran, dass Express intern decodeURIComponent() verwendet, was auch nicht plus + durch ein Leerzeichen ersetzt. Einfacher Beispielcode:

%Vor%

Wenn Sie /test%20test anfordern, erhalten Sie test test auf der Konsole. Wenn Sie /test+test anfordern, erhalten Sie test+test auf der Konsole.

Gibt es eine Möglichkeit, diese Betriebsart in Express 4 zu ändern? Ist das ein Fehler?

    
Brad 30.09.2014, 01:15
quelle

1 Antwort

1

Sie versuchen mit + ein Leerzeichen im "URI-Teil" Ihrer Anfrage darzustellen. Das kannst du nicht tun. Ein Pluszeichen wird nur in Abfragezeichenfolgen in ein Leerzeichen umgesetzt.

Es ist kein Fehler. In URI-Spezifikationen (Seite 12/13 Ссылка ) ist das Pluszeichen ein reserviertes Zeichen, das nicht als Leerzeichen übersetzt werden soll .

    
David Rissato Cruz 11.11.2015 15:51
quelle