Nuxt4 官网访问来源统计的实现

今天我遇到一个值得记录的问题,场景是这样的:官网后台需要做访问统计,我得把访问来源和访问目标的 URL 传递给后端。绕了好一阵子,才终于理清楚。

项目结构上,Nuxt 4 负责官网展示,后端是 Java 服务。核心在于理清请求链路:需要将用户访问 Nuxt 4 时的请求头信息传递到 Java 服务端。整个流程是"用户 → Nuxt 4 服务端 → Java 后端",这样就能实现来源统计。至于站内统计,监听路由变化发送请求即可。

最终我用了两个文件来落地这个方案,记录一下作为参考:

javascript 复制代码
// app/plugins/visit.client.ts

import { recordVisit } from '@/api' // 统计接口

export default defineNuxtPlugin(() => {
    const router = useRouter()
    router.afterEach((to, from) => {
        // 第一次进入不记录
        if (to.fullPath === from.fullPath) return
        const url = window.location.href || ''
        recordVisit(url)
    })
})
javascript 复制代码
// app/plugins/visit.server.ts

import { recordVisit } from '@/api' // 统计接口

export default defineNuxtPlugin(async () => {
    // 只在服务端执行
    if (!import.meta.server) return
    try {
        const url = useRequestURL()
        const headers = useRequestHeaders()
        recordVisit(url.href, headers.referer || '', headers).then(() => {
            console.log('记录访问成功')
        }).catch(() => { })
    } catch (e) {
        console.error('SSR 记录访问失败:', e)
    }
})
相关推荐
大家的林语冰几秒前
👉 尤雨溪再次成立新公司,同时官宣 Pinia 4 正式发布!
前端·javascript·vue.js
码匠许师傅4 分钟前
【C++ 面试真题】聊聊 volatile 和 mutable
开发语言·c++·面试
浮生望4 分钟前
React useRef 深度解析:从DOM操作到Web Worker多线程协作
前端
浮生望10 分钟前
React Router v7 实战全景:路由配置、嵌套路由、鉴权守卫与懒加载完整指南
前端
用户9385156350711 分钟前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战(二)
前端·javascript·typescript
(Charon)13 分钟前
【C++】线程安全队列(二):生产者消费者模型与 condition_variable 阻塞等待
c语言·开发语言·c++
liwulin050624 分钟前
【PYTHON】使用Selenium + ChromeDriver以及XPATH语法
开发语言·python·selenium
JavaPub-rodert27 分钟前
我又把自己的 Go 后台管理系统升级了一遍:文件管理、2GB 上传、私有文件预览、Docker 镜像全安排上了
开发语言·docker·golang·shiyuadmin
动力 continue32 分钟前
Python 元类与异常类:类的“制造工厂”与“报错定制师”
开发语言·python·制造
quantdash_cc33 分钟前
基于 QuantDash 5 分钟 K 线的网格交易策略参数网格搜索寻优实战
android·开发语言·pandas·量化·quantdash