mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
c90b6b398e
URLs with three or more consecutive leading slashes (e.g. `///test`) were parsed incorrectly by `DefaultUrlSerializer`. The parser consumed only two leading slashes, leaving a third that caused `parseSegment()` to produce an empty `UrlSegment`. When serialized back, that empty segment rendered as `//test` — a protocol-relative URL that browsers resolve as a different origin and reject with a `SecurityError` when passed to `history.pushState`/`replaceState`. The fix changes `parseRootSegment()` to consume all consecutive leading slashes instead of just one, normalizing any number of leading slashes to a single `/` before the path is parsed. Closes #49610
Angular Router
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand.
Guide
Read the dev guide here.