Angular2 url参数编码

时间:2016-09-16 15:39:29

标签: angular

导航到具有以下查询字符串的网址时:

http://localhost:5000/search?q=test+test 网址突然变成了 http://localhost:5000/search?query=test%2Btest

是否可以改变这种行为?我没有看到加号有什么问题,我想出于各种原因将标志保留在网址中。

2 个答案:

答案 0 :(得分:0)

this answer中所述,您可以通过实施UrlSerializer来提供自己的自定义网址序列化程序。序列化器看起来像这样:

class CustomUrlSerializer implements UrlSerializer {
    parse(url: string): UrlTree {
        // Custom code here
    }

    serialize(tree: UrlTree): string {
        // Custom code here
    }
}

然后,您需要提供自己的实现,而不是UrlSerializer:

providers: [
    { provide: UrlSerializer, useClass: CustomUrlSerializer },
    ...
]

答案 1 :(得分:-1)

加号不是网址中的有效字符。但%2B相当于+所以在复活结束时,可以将其解析回+