反转译浏览器地址参数,传过来的url都是经过浏览器转译之后的,所以目的是想拿到转译之前的url,拿到token

发布时间:2023年12月26日

转译之前的url:

http://101.66.135.62:8088/#/home?token=FDXAueTmcdlGLc6X+ui+b=jCLINhNLS4hBDb+zESxxBPA8edkb7GbnFNyHEu1pw68VrgZ5=1c6i0Dv0vSEa2aZMLIzwZzKAE4XVNXNI3dAKXXvRMZw=iH3V0aSuXcIm3

转译之后的的url:

因为传过来的url都是经过浏览器转译之后的,所以目的是想拿到转译之前的url,拿到token;有如下两个方法,建议使用方法二,处理的更全面

// 方法一:处理url编码

? ? getQueryString(token) {

? ? ? while (token.indexOf('%20') >= 0) token = token.replace(/%20/, '+') // 空格

? ? ? while (

? ? ? ? token.indexOf('%3D') >= 0 // '='

? ? ? )

? ? ? ? token = token.replace(/%3D/, '=')

? ? ? while (

? ? ? ? token.indexOf('%2F') >= 0 // '/'

? ? ? )

? ? ? ? token = token.replace(/%2F/, '/')

? ? ? return token

? ? },

? ? // 方法一:

? ? getTokenToUrl() {

? ? ? var url = window.location.href

? ? ? console.log('url==', url)

? ? ? var querys = url.substring(url.indexOf('?') + 1).split('&')

? ? ? var result = []

? ? ? for (var i = 0; i < querys.length; i++) {

? ? ? ? var temp = querys[i].split('=')

? ? ? ? if (temp.length < 2) {

? ? ? ? ? result[temp[0]] = ''

? ? ? ? } else {

? ? ? ? ? result[temp[0]] = temp[1]

? ? ? ? }

? ? ? }

? ? ? this.currentToken = this.getQueryString(result.token)

? ? ? console.log('token==', this.currentToken)

? ? },

? ? // 方法二:

? ? sessionIdFunc(key) {

? ? ? const urlSessionId = new URLSearchParams(window.location.hash.slice(window.location.hash.indexOf('?')))

? ? ? const paramSessionId = urlSessionId.get(key)

? ? ? return paramSessionId

? ? },

? ? // 获取用户名

? ? async getAccount() {

? ? ? // 方法二:

? ? ? let newToken = decodeURIComponent(this.sessionIdFunc('token')).replaceAll(' ', '+')

? ? ? let params = {

? ? ? ? token: newToken // 通过url截取获得 ?方法二

? ? ? ? // token: this.currentToken // 通过url截取获得 方法一

? ? ? }

? ? ? await this.$Api

? ? ? ? .getAccount(params)

? ? ? ? .then(res => {

? ? ? ? ? console.log('this.username==', res)

? ? ? ? ? this.username = res.data.data.account

? ? ? ? })

? ? ? ? .catch(error => {

? ? ? ? ? this.$Toast(error.data.message)

? ? ? ? })

? ? },

? ? // 获取token

? ? async getTokenAuth() {

? ? ? let params = {

? ? ? ? username: this.username

? ? ? ? // username: 'al-wangwf'

? ? ? }

? ? ? await this.$Api.getAuth(params).then(res => {

? ? ? ? setToken(res.data.data)

? ? ? })

? ? },

文章来源:https://blog.csdn.net/wwf1225/article/details/135225250
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。