如何从请求对象中获取引荐来源?变量this.request.headers['referer']
为空。
答案 0 :(得分: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)
当被另一页引用时产生了这个:
{ 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' }
这是直接加载的:
{ 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' }
答案 1 :(得分:1)
对于较新的koa版本 - 我目前使用2.5.1 - 由于生成器函数*()
而生成警告,因此这是ES6语法的新示例
const Koa = require('koa')
const app = new Koa()
app
.use(async (ctx) => console.log(ctx.request.headers))
app.listen(8888)
输出应与@JoshWillik描述的相同,但警告
除外编辑:
gif add表明它有效 和sample repository 尝试