【问题标题】:getServerSideProps access current browser urlgetServerSideProps 访问当前浏览器 url
【发布时间】:2021-04-13 11:04:33
【问题描述】:

我正在调用 getServerSideProps 并像这样传入 req 和 res 参数:

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

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

【问题讨论】:

    标签: reactjs next.js


    【解决方案1】:

    您可以使用上下文参数中的resolvedUrl 字段。

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

    来自getServerSideProps 文档:

    resolvedUrl:请求 URL 的规范化版本,去除 _next/data 客户端转换的前缀,包括原始查询值。

    请注意,resolvedUrl 不会返回 URL 的域部分,只返回路径和查询字符串。

    【讨论】:

    • 只是告诉你这不会给你请求参数。您只会在 /api?name=john 中获得 /api
    • getServerSideProps 中,resolvedUrl 参数包含 URL 的原始查询值。
    • 所以你是说在/api?name=john 中,resolvedUrl 会给你/api?name=john 而不是/api。我没有在简单的用例中对此进行测试,但是我在 nextjs 中使用了路由重写,并且 resolvedUrl 没有返回任何查询参数。
    • /api 是一个 API 路由,不由 getServerSideProps 处理。使用重写可能会影响传递的内容,具体取决于您的设置方式。
    • @juliomalves:谢谢 :)
    猜你喜欢
    • 2011-01-18
    • 1970-01-01
    • 2021-11-01
    • 2011-01-08
    • 2020-06-26
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多