在Angular 6中如何使大小写不敏感的网址格式?

Jit*_*dra 9 angular angular5 angular6

就我而言,我想以不区分大小写的方式支持相同的网址。

示例:它应该支持所有网址

localhost:1029/documentation
localhost:1029/DOCUMENTATION
localhost:1029/DOCUMENTAtion
localhost:1029/docuMENTATION
Run Code Online (Sandbox Code Playgroud)

小智 15

您应该将此提供语句添加到app.module.ts

import { DefaultUrlSerializer, UrlTree } from '@angular/router';

export class LowerCaseUrlSerializer extends DefaultUrlSerializer {
    parse(url: string): UrlTree {
        // Optional Step: Do some stuff with the url if needed.

        // If you lower it in the optional step 
        // you don't need to use "toLowerCase" 
        // when you pass it down to the next function
        return super.parse(url.toLowerCase()); 
    }
}
Run Code Online (Sandbox Code Playgroud)

@NgModule({
    imports: [
      ...
    ],
    declarations: [AppComponent],
    providers: [
        {
            provide: UrlSerializer,
            useClass: LowerCaseUrlSerializer
        }
    ],
    bootstrap: [AppComponent]
})
Run Code Online (Sandbox Code Playgroud)

  • 这也会将查询值更改为小写,这是有问题的,查询字符串值通常区分大小写 (7认同)
  • 仅供参考,如果您使用它,那么您的查询值将是小写,这意味着使用 JWT 令牌等的回调将失败 (5认同)
  • 在这种情况下,url 结构转换为小写。但我希望它会保留用户提供的相同结构。 (3认同)