如何在 Nuxt 插件中获取完整的 url?

问题描述 投票:0回答:2

我在访问包含所有内容的 nuxt js 插件中的 url 时遇到问题。简而言之:URL 中的一部分向我显示了人们从哪个国家/地区进行访问,以及应该在 api 调用中使用该国家/地区。

window.location
不起作用,因为它是 SSR 并且窗口在那里不可用。

req.headers.host
不起作用,因为 nuxtgenerate 已在登台/生产上运行

编辑:路由对象不会向我提供有关域的任何信息。之后只有部分。例如,对于 www.test.nl/about ,它不会在任何地方返回 www.test.nl

在这种情况下我有办法获得完整的网址吗?

nuxt.js
2个回答
1
投票

如果确实与

host
有关,您可以使用
process.client
检查来包装您的插件代码。这样您的代码只会在客户端上执行,您可以安全地使用
window.location.host

如果没有主机的当前路由就足够了,您可以使用

route
对象,它是传递给您的插件的上下文对象的一部分(适用于服务器和客户端)。

export default function ({ route }) {
  if (process.client) {
    console.log(window.location.host)
  }

  console.log(route)
}

0
投票

对于 Nuxt 3,您可以使用

useRequestURL()
api。在服务器端和客户端上工作。

~/plugins/file.ts

export default defineNuxtPlugin(() => {
  console.log(useRequestURL())
})

// OUTPUT:
/*
hash: ""
host: "localhost:3000"
hostname: "localhost"
href: "http://localhost:3000/"
origin: "http://localhost:3000"
password: ""
pathname: "/"
port: "3000"
protocol: "http:"
search: ""
*/

© www.soinside.com 2019 - 2024. All rights reserved.