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)
    }
})
相关推荐
破茧蝴蝶3 小时前
Python分布式爬虫完整教程
开发语言·python
Autumn_ing3 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
狗凯之家源码网3 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
远离UE44 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience4 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
朱涛的自习室4 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
栈帧之外4 小时前
【C++】STL之set
开发语言·c++
catchadmin5 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
java1234_小锋6 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
jimy16 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++