在 Angular 中,我导航到一个页面并希望给它一个 returnUrl 作为参数。我是这样做的:
this.router.navigate(['/validation'], { queryParams: { returnUrl: state.url }});
但这会导致网址为:
https://myhost/myapp/validation%3FreturnUrl%3D%252FmyUrl
我期望它在的地方
https://myhost/myapp/validation?returnUrl=%2FmyUrl
当我阅读文档时,URL 应该完全按照我的预期进行编码:值应该被编码,但是 ? 完好无损。
错误编码的 URL 导致我的应用程序找不到 /validation URL 并将导航发送到 Angulars 404 处理。
知道有什么问题吗?
是的,Angular 可能正在对 URL 组件进行编码,但您可以decodeURIComponent
在需要时使用它:
const url = "https://myhost/myapp/validation%3FreturnUrl%3D%252FmyUrl";
const decodeURL = decodeURIComponent(url);
console.log(decodeURL)
下面的代码将为您提供处理 URL 的方法/属性,即 URL.searchParams.get('returnUrl')
const URL = new URL(decodeURL);
console.log(URL);
它将按预期工作并从中获取参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句