【问题标题】:% symbol encoded to %25 in URL every reload% 符号在每次重新加载时在 URL 中编码为 %25
【发布时间】:2017-07-01 15:50:49
【问题描述】:
【问题讨论】:
标签:
spring
angular
spring-data-rest
angular2-router3
【解决方案1】:
我将提供者自定义 UrlSerializer 添加到根 AppModule。
像这样……
// custom-url-serializer.ts
import { DefaultUrlSerializer, UrlSerializer, UrlTree } from '@angular/router';
export class CustomUrlSerializer implements UrlSerializer {
private defaultUrlSerializer: DefaultUrlSerializer = new DefaultUrlSerializer();
parse(url: string): UrlTree {
url = url.replace(/\%/g, '%25');
return this.defaultUrlSerializer.parse(url);
}
serialize(tree: UrlTree): string {
return this.defaultUrlSerializer.serialize(tree).replace(/%25/g, '%');
}
}
// app.module.ts
import { NgModule } from '@angular/core';
import { CustomUrlSerializer } from './shared/custom-url-serializer';
@NgModule({
declarations: [
AppComponent,
],
imports: [
...
],
bootstrap: [AppComponent],
providers: [
{
provide: UrlSerializer,
useClass: CustomUrlSerializer, // <-- Here!
},
],
})
export class AppModule { }
【解决方案2】:
我在获取链接时使用了以下方法。
decodeURIComponent()