2017-11-13 1 views
1

Ich habe ein Problem in einem angular2-Projekt, wo ich eine URL erzeuge, die per E-Mail an einen Benutzer gesendet wird. Die URL in der E-Mail muss eine spezielle ID enthalten, die im Router als übergeben wird:trailing "=" wird in angular2 url getrimmt

{Pfad: somepath /: id}

Der Benutzer kann dann auf die URL klickt, die sein wird:

http://localhost/somepath/ {id}

Mein Problem ist, dass die ID ein abschließendes enthalten kann „=“ Zeichen, das sich automatisch getrimmt wird, wenn auf die uRL der Navigation (und damit die ID jetzt falsch machen)

ich habe versucht, kodiert th e-ID, bevor es an die URL machen die URL hinzufügen: wird

http://localhost/somepath/XXX%3D

aber die codierte "=" (% 3D) noch abgeschnitten.

Gibt es einen Grund, warum codierte URL-Werte immer noch abgeschnitten werden und gibt es eine Möglichkeit, dies zu verhindern?

+0

Haben Sie andere Optionen untersucht? Normalerweise, wenn Sie einige Token in der URL übergeben müssen, ist es besser, queryParams zu verwenden und übergeben Sie es wie 'http: // localhost/somepath? Id = ...' –

+0

sollte es nicht fehlschlagen, überprüfen Sie [Plunker] (https://plnkr.co/edit/yXzWSbggF4QtFRREk0B?p=preview), können Sie dies aktualisieren, um Ihr Problem zu reproduzieren. –

Antwort

0

Ok war nur ein massives Versehen meinerseits ....

ich die tatsächliche id durch einen Zufallsverschlüsselungsgenerator maskiert wurde, die Symbole und endet in der Regel in „=“ enthält. Was ich jedoch nicht bemerkte, war, dass es ein ")" gab, das auch in ein paar Fällen enthalten war, das nicht codiert wird und alles verursachte, nachdem es beim Laden der URL abgeschnitten wurde.

Es wurde behoben, indem das ")" durch ein anderes Symbol ersetzt wurde, das nicht codiert wird, aber eines, das in Angular2 keine andere Funktion hat (in diesem Fall ein "*").

Verwandte Themen