js获取地址栏中的token
时间: 2024-01-15 15:04:51 浏览: 28
可以通过以下代码获取地址栏中的token参数:
```javascript
const urlParams = new URLSearchParams(window.location.search);
const token = urlParams.get('token');
```
这里使用了`URLSearchParams`对象,它可以方便地获取地址栏中的查询参数。`get()`方法可以获取指定参数的值,如果参数不存在则返回`null`。
相关问题
vue3 外链跳转携带token不显示在地址栏
你可以使用 Vue Router 的导航守卫来实现外链跳转时携带 token 但不显示在地址栏中。下面是一种可能的解决方案:
1. 首先,确保你已经安装了 Vue Router,并在项目中引入它。
2. 在路由文件中,定义一个全局前置守卫(global before guard),用来拦截所有的外链跳转。
```javascript
import router from './router'
router.beforeEach((to, from, next) => {
// 判断是否是外链跳转
if (to.meta.externalLink) {
// 获取 token
const token = 'your_token_here'
// 创建一个隐藏的表单,用于提交 token
const form = document.createElement('form')
form.action = to.path
form.method = 'post'
// 创建一个隐藏的输入框,存放 token
const tokenInput = document.createElement('input')
tokenInput.type = 'hidden'
tokenInput.name = 'token'
tokenInput.value = token
// 将输入框添加到表单中
form.appendChild(tokenInput)
// 将表单添加到页面中
document.body.appendChild(form)
// 提交表单
form.submit()
} else {
next()
}
})
```
3. 在定义路由时,为外链跳转的路由添加一个 meta 属性,用来标识它是外链跳转。
```javascript
const routes = [
{
path: '/external',
name: 'ExternalLink',
component: ExternalLink,
meta: {
externalLink: true
}
},
// 其他路由...
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
```
这样,当用户点击一个带有 `externalLink` meta 属性的链接时,会触发全局前置守卫,创建一个隐藏的表单,将 token 作为参数提交,然后页面会进行跳转,但地址栏中并不会显示 token。
请注意,这只是一种解决方案,具体实现可能因你的项目结构和需求而有所不同。你需要根据实际情况进行调整和优化。
<script> function base64ToUint8Array(base64) { var raw = atob(base64); var uint8Array = new Uint8Array(raw.length); for (var i = 0; i < raw.length; i++) { uint8Array[i] = raw.charCodeAt(i); } return uint8Array; } $(document).ready(function() { let MODULE_PATH = "/zhengshu/"; // 获取URL参数中的ID var urlParams = new URLSearchParams(window.location.search); var id = "<?php echo $this->gets['0'];?>"; var token = "<?php echo setToken();?>"; // 发送AJAX POST请求获取base64格式的PDF文件 $.ajax({ url: MODULE_PATH + 'pdfbase64', type: 'POST', data: { id: id,token: token}, success: function(response) { var pdfData = base64ToUint8Array(response); console.log(pdfData); // 使用pdf.js打开PDF文件 PDFViewerApplication.open(pdfData); }, error: function(error) { console.log('Error:', error); } }); // 禁用pdf.js工具栏上的按钮 var appOptions = { disablePreferences: true }; // 添加满屏水印 appOptions.watermark = { text: 'Your watermark text', diagonal: true }; // 初始化PDF Viewer PDFViewerApplication.run(appOptions); }); </script>
这段代码是一个使用pdf.js库来预览base64编码的PDF文件的示例。它使用了jQuery库和一些PHP代码。
首先,它定义了一个名为`base64ToUint8Array`的函数,用于将base64字符串转换为Uint8Array类型的字节数组。然后,在`$(document).ready`函数中,它从URL参数中获取ID和token。
接下来,它发送一个AJAX POST请求到指定的URL来获取base64格式的PDF文件数据。成功后,它将使用`base64ToUint8Array`函数将获取的base64数据转换为Uint8Array字节数组,并将其传递给PDFViewerApplication的`open`方法来打开PDF文件。
在这段代码中,还定义了一些PDFViewerApplication的配置选项。例如,禁用了工具栏上的偏好设置按钮,以及添加了一个水印文本。
请注意,此代码片段包含了一些PHP代码,其中使用了`<?php ?>`标签,这可能是用于生成动态内容的部分。在这里,您需要根据您自己的环境和需求进行适当的调整。
希望这可以帮助到您!如果您还有其他问题,请随时提问。