next.js getServerSideProps访问当前浏览器URL

stszievb  于 2023-04-05  发布在  其他
关注(0)|答案(2)|浏览(138)

我调用getServerSideProps并传入req和res参数,如下所示:

export async function getServerSideProps({ req, res }) {}

我需要获取当前浏览器的url路径,但在请求对象中找不到。有没有办法在getServerSideProps中获取当前url?

pxiryf3j

pxiryf3j1#

您可以使用context参数中的resolvedUrl字段。

export async function getServerSideProps({ req, res, resolvedUrl }) {
    console.log(resolvedUrl)

   // Remaining code
}

getServerSideProps文档:
resolvedUrl:请求URL的规范化版本,它去掉了客户端转换的_next/data前缀,并包含原始查询值。
请注意,resolvedUrl不会返回URL的域部分,只返回路径和查询字符串。

jc3wubiy

jc3wubiy2#

您可以通过传入请求中的headers对象访问域名

// localhost:3000
context.req.headers.host

如果您想要路径的其余部分,您可以在传入请求对象中的URL属性中拥有它

//blog/3
context.req.url

完整示例:

export function getServerSideProps (context){

    // localhost:3000
    const domain = context.req.headers.host

    // /blog/3
    const path = context.req.url

    //localhost:3000/blob/3
    const fullAddress = domain + path

}

相关问题