如何在 NestJS 中获取发起(前端)请求的域

Nat*_*lie 8 nestjs

我的问题类似于以下内容:如何获取在express.js中发起请求的域?但我正在使用 NestJS。我发现对于express.js可能有一个很好的答案,但我不能将它应用在NestJS上(req.origin未定义)。

有人能帮我解决这个问题吗?先感谢您。

小智 6

在我的项目中,下面的代码有效。

async login (@Headers() headers) {
  console.log('AUTHH LOGG', headers.host)
}
Run Code Online (Sandbox Code Playgroud)


Nat*_*lie -2

我找到了问题的答案,我们可以使用@Host('origin')。仅当我们从真实的前端调用后端服务器时,该值才存在,而不是从Postman或直接从浏览器调用后端url。感谢 Moazzam Arif 的帮助,请允许使用您的示例在下面显示我的答案。

@Controller('cats')
export class CatsController {
  @Get()
  findAll(@Host('origin') origin: string): string {
    return 'This action returns all cats';
  }
}
Run Code Online (Sandbox Code Playgroud)

  • Nestjs中没有@Host装饰器..是自定义装饰器吗? (4认同)
  • 如果您在 Postman 中设置 Origin 标头,它将起作用 (2认同)
  • 您的意思是“@Headers()”而不是“@Host()”吗? (2认同)