如何在nodejs中使用koa获取"HTTP_REFERER"?

Bla*_*nic 2 javascript node.js koa

如何从请求对象中获取引荐来源?变量this.request.headers['referer']是空的.

Jos*_*lik 5

如果您的页面被另一个页面引用,则可以通过该访问者访问该引用this.headers.referer.

如果页面没有被另一个页面引用(直接加载),this.headers.referer则将是未定义的.

这个演示代码:

'use strict'
const Koa = require('koa')
let app = new Koa()
app.use(function * () {
  console.log(this.headers)
})

app.listen(8888)
Run Code Online (Sandbox Code Playgroud)

当被另一页引用时产生这个:

{ host: 'localhost:8888',
  'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'accept-language': 'en-US,en;q=0.5',
  'accept-encoding': 'gzip, deflate',
  referer: 'http://localhost:1111/',
  connection: 'keep-alive' }
Run Code Online (Sandbox Code Playgroud)

这个直接加载时:

{ host: 'localhost:8888',
  'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'accept-language': 'en-US,en;q=0.5',
  'accept-encoding': 'gzip, deflate',
  connection: 'keep-alive' }
Run Code Online (Sandbox Code Playgroud)