首页 > 解决方案 > 当 URL 太长时,如何防止哈希被清除,例如在 OAuth 令牌场景中,通过 Angular CLI 使用 Webpack-Dev-Server?

问题描述

ng serve当 URL 太长时,Angular CLI 使用的 Web 服务器(Webpack-Dev-Server)似乎消除了 URL 的哈希片段。例如,从 OAuth 调用中获取令牌时:

http://localhost:4200/auth/sso#access_token=[access_token]&id_token=[ID_TOKEN]&token_type=Bearer&expires_in=3600

填写访问令牌和 id 令牌后,该 URL 可以推送到 2000 多个字符。在我的测试中,似乎限制在 1990 个字符左右,超出此范围,哈希在请求 Angular 应用程序之前被清除。我查看了用于实例化服务器的 Angular CLI 代码,并没有看到任何特定于哈希片段的内容。

这不是关于如何从 Angular 中的 URL 获取片段的问题的重复,当 URL 哈希片段较短并且哈希传递到 Angular 应用程序时,它工作得很好。

如何防止哈希被清除?这是一个 Webpack 开发服务器错误吗?如果是这样的话,这可能不是 Angular 特有的。

这不是与 Angular 哈希相关的其他故事的重复,因为它特定于 Webpack-Dev-Server 以及它如何处理带有哈希片段的长 URL。

标签: angularwebpackangular-cliwebpack-dev-server

解决方案


推荐阅读