首页 > 解决方案 > 读取 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参数的任何解决方案?

标签: angular

解决方案


您不能因为它是哈希(或片段),而不是查询参数,因此如果您希望将其作为查询参数,则需要对其进行解析:

let hash = window.location.hash;
let googleParams = new URLSearchParams(hash).replace('#','');

console.log(googleParams.get('scope'));

推荐阅读