首页 > 解决方案 > 是否可以在 JavaScript 中访问重定向 url 的参数?

问题描述

当我点击这个 url 时,https://www.firstwebsite.com?redirect_uri=https://www.secondwebsite.com&response_type=code它会重定向到具有不同 url 的页面,https://www.secondwebsite.com?code=aLongString

我正在尝试访问code在重定向时加载的 url 的参数。

这是我尝试过的:

fetch('https://www.firstwebsite.com?redirect_uri=https://www.secondwebsite.com&response_type=code')
    .then(getParams => {
        const params = new URLSearchParams(window.location.search)
        const code = params.get('code')
        console.log(code)
    }
)

然而这只是返回undefined

我也试过这个:

const url_string = 'https://www.firstwebsite.com?redirect_uri=https://www.secondwebsite.com&response_type=code'
const url = new URL(url_string)
const code = url.searchParams.get('code')
console.log(code)

但这会返回第一个 url,而不是我要重定向到的那个。

有谁知道如何做到这一点?

标签: javascripturlredirectparametersfetch

解决方案


正如您在正确的searchParams工作中所看到的:

const url_string = 'https://www.firstwebsite.com?redirect_uri=https://www.secondwebsite.com'
const url = new URL(url_string)
const code = url.searchParams.get('redirect_uri')
console.log(code)

在您发表评论后,这有点棘手,但如果您现在的网址始终相同,则可以使用

const url_string = 'https://www.firstwebsite.com?redirect_uri=https://www.secondwebsite.com&response_type=code'
const firstSearch = url_string.split('?redirect_uri=');
console.log(firstSearch[1])


const url_string = 'https://www.firstwebsite.com?redirect_uri=https://www.secondwebsite.com?code=aLongString'
const firstSearch = url_string.split('?code=');
console.log(firstSearch[1])


推荐阅读