Angular 5路由器读取加密参数

时间:2018-01-29 06:46:33

标签: angular angular-ui-router

在Angular 5中,我有一个像这样的路由配置:

{path: 'checkout/success/:type/:bookingId', component: SuccessComponent}

然后当我读到这个网址时:

http://localhost:9001/checkout/success/airport-bus/Mdi7D-2mNb_qeDIw8gWGJw==?vnp_Amount=4000000&vnp_BankCode=NCB&vnp_BankTranNo=20180129102837&vnp_CardType=ATM&vnp_OrderInfo=1801290998&vnp_PayDate=20180129103116&vnp_ResponseCode=00&vnp_TmnCode=DULICH01&vnp_TransactionNo=13010138&vnp_TxnRef=18012945505&vnp_SecureHashType=MD5&vnp_SecureHash=8c9d820c7ef973fcd999de7322986072

Angualr自动削减了预订的参数,它重定向到:

http://localhost:9001/checkout/success/airport-bus/Mdi7D-2mNb_qeDIw8gWGJwcode

然后boongkingId = Mdi7D-2mNb_qeDIw8gWGJwcode(太短) 我无法满足预订所需。

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

这是因为您在==中使用:bookingId(Mdi7D-2mNb_qeDIw8gWGJw ==?....)。如果省略这些,Angular 4不应该删除其余的URL。

您只能在参数中使用某些字符,请查看IETF RFC 398中的规范以获取更多详细信息。

EDIT 在IETF RFC 3986中添加了关于params的解释

来自IETF RFC 3986, section 3.3. Path

中的解释
  

除了分层路径中的点段之外,路径段也是如此      通用语法认为不透明。 URI生成应用程序      经常使用段中允许的保留字符来分隔      特定于方案或特定于引用程序处理程序的子组件。对于      例如,分号(“;”)和等于(“=”)保留字符是      通常用于分隔适用的参数和参数值      那段。