净化地址栏的参数的方式

76 阅读1分钟
  • 净化地址栏的参数的方式
const urlPart = window.location.href.split('?')
	const path = urlPart[0]
	const search = urlPart[1]
	const params = new URLSearchParams(search)
        const loginInfo = { token: '', appId: '', viewId: '' }
	Object.keys(loginInfo).forEach(k => {
		const value = params.get(k)
		if (value) {
			loginInfo[k] = value
			params.delete(k)
		}
	})
	if (loginInfo.token && loginInfo.appId) {
		localStorage.setItem('loginInfo', JSON.stringify(loginInfo)) //  保存到 sessionStorage

		setToken(loginInfo.token)
		window.history.replaceState({}, '', `${path}${params.size ? `?${params}` : ''}`) //  保存必须的参数后将参数删除,目的是净化url参数,保留某些参数
	}
 //