我调用getServerSideProps并传入req和res参数,如下所示:
export async function getServerSideProps({ req, res }) {}
我需要获取当前浏览器的url路径,但在请求对象中找不到。有没有办法在getServerSideProps中获取当前url?
pxiryf3j1#
您可以使用context参数中的resolvedUrl字段。
resolvedUrl
export async function getServerSideProps({ req, res, resolvedUrl }) { console.log(resolvedUrl) // Remaining code }
getServerSideProps文档:resolvedUrl:请求URL的规范化版本,它去掉了客户端转换的_next/data前缀,并包含原始查询值。请注意,resolvedUrl不会返回URL的域部分,只返回路径和查询字符串。
getServerSideProps
_next/data
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 }
2条答案
按热度按时间pxiryf3j1#
您可以使用context参数中的
resolvedUrl
字段。getServerSideProps
文档:resolvedUrl
:请求URL的规范化版本,它去掉了客户端转换的_next/data
前缀,并包含原始查询值。请注意,
resolvedUrl
不会返回URL的域部分,只返回路径和查询字符串。jc3wubiy2#
您可以通过传入请求中的headers对象访问域名
如果您想要路径的其余部分,您可以在传入请求对象中的URL属性中拥有它
完整示例: