Nuxt 3 Server API中如何获取含端口的完整Host?
获取完整Host的解决方案
在Nuxt的server/api端点中,要获取包含端口的完整Host,你可以通过以下方式解决:
直接读取请求头的
host字段:getRequestURL()的host属性会自动忽略默认端口(如HTTP的80、HTTPS的443),但自定义端口会保留在请求头的host里,直接读取就能拿到完整内容。export default defineEventHandler(event => { const fullHost = event.node.req.headers.host console.log(fullHost) // 输出localhost:3000或domain.test })适配反向代理场景:
如果你的服务部署在Nginx、Cloudflare这类反向代理之后,需要确保代理传递了正确的Host头;部分代理会用X-Forwarded-Host头传递原始主机信息,可以优先读取这个字段:export default defineEventHandler(event => { const fullHost = event.node.req.headers['x-forwarded-host'] || event.node.req.headers.host console.log(fullHost) })
注意:如果应用在生产环境使用标准端口(80/443),host头里不会包含端口,这是浏览器的默认行为,属于正常情况。
内容的提问来源于stack exchange,提问作者user28435498
相关产品推荐
相关产品推荐

