gpt4 book ai didi

javascript - 带有 URL 参数的 URL 在浏览器中连接起来

转载 作者:行者123 更新时间:2023-12-01 00:35:50 25 4
gpt4 key购买 nike

我有以下代码:

const url = 'https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=' +
encodeURIComponent('https://dev.mysite.com/google_oauth2/') +
'&scope=https://www.googleapis.com/auth/drive.file&client_id=myclientid'

window.open(url, "", "width=700,height=500")

super 奇怪的行为是,如果我清除浏览器历史记录并第一次运行此代码,它工作正常,但如果我第二次及后续运行,网址会连接起来,我会看到

https://dev.mysite.com/google_oauth2/?code=mycode&scope=https://www.googleapis.com/auth/drive.file

而不是

https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https://dev.mysite.com%2Fgoogle_oauth2%&scope=https://www.googleapis.com/auth/drive.file&client_id=myclientid

有人知道为什么会发生这种情况吗?

顺便说一句,我正在使用 React.JS,但我认为它与此无关......

已解决。是 Google 特有的问题

最佳答案

我建议您为此目的使用更合适的 URL 和 URLSearchParams:https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParamshttps://developer.mozilla.org/en-US/docs/Web/API/URL

所以你的代码是:

const url = new URL('https://accounts.google.com/o/oauth2/v2/auth')
url.searchParams.append('redirect_uri', 'https://dev.mysite.com/google_oauth2/');
url.searchParams.append('scope', 'https://www.googleapis.com/auth/drive.file');
url.searchParams.append('client_id', 'myclientid');

url.href将是:

https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https%3A%2F%2Fdev.mysite.com%2Fgoogle_oauth2%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file&client_id=myclientid

关于javascript - 带有 URL 参数的 URL 在浏览器中连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58144289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com