在Django请求中获取请求源

Jar*_*oke 6 javascript python django post cross-domain

所以我试图在Django中启用跨源资源共享,所以我可以发布到外部站点,当我设置时很容易做到

response["Access-Control-Allow-Origin"]="*" 
Run Code Online (Sandbox Code Playgroud)

但我想让它检查原点是否在允许的原始列表中(主要是限制它只允许特定的站点)但我似乎无法在Django请求中找到我可以获取原始信息的任何地方.

我尝试使用request.META ['HTTP_HOST'],但这只是返回要发布到的网站.有谁知道在Request对象中我可以获得请求的来源?

ZAD*_*Man 8

至于获取网址request(这是我正在寻找的),请request.META['HTTP_REFERER']改用.

  • 这会返回一个 KeyError (3认同)
  • 您使用的是哪个版本的 Django?如果打印 `request.META.keys()` 会得到什么?这是关于请求元的文档:https://docs.djangoproject.com/en/1.9/ref/request-response/#django.http.HttpRequest.META (2认同)

Joe*_*ton 6

在姜戈,

request.headers['Origin']
Run Code Online (Sandbox Code Playgroud)

回答原来的问题。

您可以print(request.headers)在标题中查看所有可用内容。


mar*_*dev 0

我强烈建议您使用django-cors-headers。它允许您以更 Pythonic 的方式定义CORS_ORIGIN_WHITELIST允许的来源列表。