% 符号在 URL 每次重新加载时编码为 %25
% symbol encoded to %25 in URL every reload
İ 使用 Spring-Data-Rest 和 Angular 2
% URL 编码代码 %25 (http://www.w3schools.com/tags/ref_urlencode.asp)
首先;
http://localhost:4200/members/http%3A%2F%2Flocalhost%3A8080%2FErPApI%2Forganizations%2F1/detail
导航此 URL 并重新加载页面或复制粘贴新标签时 link
% 再次编码 %25。每次重新加载都是如此。
所以我丢失了会员ID。我怎样才能再次阻止编码 %?
我在拿到link的时候用了下面的方法。
decodeURIComponent()
我将提供商自定义 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 { }
İ 使用 Spring-Data-Rest 和 Angular 2
% URL 编码代码 %25 (http://www.w3schools.com/tags/ref_urlencode.asp)
首先;
http://localhost:4200/members/http%3A%2F%2Flocalhost%3A8080%2FErPApI%2Forganizations%2F1/detail
导航此 URL 并重新加载页面或复制粘贴新标签时 link
% 再次编码 %25。每次重新加载都是如此。
所以我丢失了会员ID。我怎样才能再次阻止编码 %?
我在拿到link的时候用了下面的方法。
decodeURIComponent()
我将提供商自定义 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 { }