HTTP引荐问题

5 投票
2 回答
7680 浏览
提问于 2025-04-17 01:54

我有一个视图在渲染一个静态页面,但我似乎无法获取到这个页面的来源地址。

def landing(request, referer='google'):
    ''' Loads the landing page '''
    msg = ''
    if request.method == 'GET':
        referer = request.META['HTTP_REFERER']
        return render_to_response('index.html',
            {'WSGI_DIR': settings.WSGI_DIR,'csrf_value': get_token(request),
                'referer':referer},context_instance=RequestContext(request))

它总是弹出这个错误:

KeyError at / 'HTTP_REFERER'

我已经导入了所有需要的东西。有没有人知道怎么回事?

2 个回答

4

做这个修改可以解决键错误的问题:

referer = request.META.get('HTTP_REFERER', '')
10

你应该使用 request.META.get('HTTP_REFERER')。并不是每次请求都会有一个 Referer 头,如果没有的话,你就会遇到这个错误。你可以检查一下 get() 的结果是不是 None,这样就能知道这个头是否被发送过。

撰写回答