angular - 读取 URL 参数 - 以 # 开头
问题描述
我已经集成google-api
到我的角度应用程序中。通常,查询参数将以?=开头,但google在身份验证后返回的 URL 以#开头,所以我无法读取 url 参数。
示例返回 URL:
http://localhost:4200/oauth/google-docs#scope=email%20profile%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/analytics.readonly%20openid%20https://www.googleapis.com/auth/analytics&id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6Ijc4M2VjMDMxYzU5ZTExZjI1N2QwZWMxNTcxNGVmNjA3Y2U2YTJhNmYiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiYXpwIjoiMjUzNjIyMDIyODQ3LWljaG5mNHA5aXEzMjBtc2hxOHVuMHU3NzRqM3JyM3BxLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiMjUzNjIyMDIyODQ3LWljaG5mNHA5aXEzMjBtc2hxOHVuMHU3NzRqM3JyM3BxLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwic3ViIjoiMTE4MjM5MDE3NjE4NTAwNDQ0MzAyIiwiZW1haWwiOiJzYXRoaWFtb29ydGh5Lm5pQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpYXQiOjE2MTEyMDUxNjIsImV4cCI6MTYxMTIwODc2MiwianRpIjoiOTZmMzc0OWFmMzRjNDhkYmI4YTI0ODg3YTI4YTRjMjA1YmZjYzhlMyJ9.H56V0v0EM9QR1iYAnctfBLaMdvhtxGxNWXXCWdNJQcpj6pLPJm_TELLDCQD-Pbf9wI1gK4XDflwLabCSSj2ZxTQP00-gPzym7wHhQg6Jvlls_h98HvfE6FWq4pZE0rBZ9eYQ1ExyCs29OPcF8SXtgn3JvM1dtEP7Y1yJ8JeZBSC6EH5oDGHzsz4TUWZhnr3coJdzbatj7LOW8I4_9Q8HzATfpCEJzolMoRcrIMlBii7K6bYMvTSCO0t7KlibucKaH0_HBj-MKJ3fFHKXmBeAm8gOMvv2uC5vWdTiVv0WFeZKZ4EehTDjP7WFeg7eyfhYp-TxrfvAJE3nxBnEx8G39A&login_hint=AJDLj6JUa8yxXrhHdWRHIV0S13cAVabJpG7Wvu9kahbHz74sfe70f99ozWADGi1j3da_ocb32QvRp7hTdX0b9Lx9x8oHgfQHlw&client_id=253622022847-ichnf4p9iq320mshq8un0u774j3rr3pq.apps.googleusercontent.com
读取url参数的任何解决方案?
解决方案
您不能因为它是哈希(或片段),而不是查询参数,因此如果您希望将其作为查询参数,则需要对其进行解析:
let hash = window.location.hash;
let googleParams = new URLSearchParams(hash).replace('#','');
console.log(googleParams.get('scope'));
推荐阅读
- c - 依赖于 C/C++ 运算符优先级;运算符 '&&' 和 '==' [MISRA 2012 规则 12.1,建议] | 克林特 9050
- blockchain - 创建用于记录块哈希的底层模块
- plyr - Plyr.io 上未显示带有 HLS 视频音频的音频组切换器
- perl - Perl:从多列文件的每一列计算折刀误差
- php - 在 codeigniter 中包含函数
- reactjs - 做出反应。IE11 请求被阻止
- python - 如何解决Visual Studio代码中“Python扩展加载...”的问题?
- jquery - jQuery UI (Droppable):如果 droppable 具有相对/绝对的 css 位置,则可拖动元素不会放置在鼠标指针处
- android-contentprovider - 如何在 root 设备上访问 3rd 方 TvProvider?
- angular - Angular 通用 SSR 在 localhost 上工作但在 netlify 上不工作