在Django请求中获取请求源

时间:2014-01-16 17:40:11

标签: javascript python django post cross-domain

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

response["Access-Control-Allow-Origin"]="*" 

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

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

5 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:1)

我强烈建议您使用django-cors-headers。它允许您以更加pythonic的方式定义CORS_ORIGIN_WHITELIST这是允许的起源列表。

答案 2 :(得分:0)

要回答“有人知道Request对象中我可以获取请求的来源吗?”的问题,request.META ['REMOTE_ADDR']会不会为您提供所需内容?

答案 3 :(得分:0)

在Django中,

request.headers['Origin']

回答原始问题。

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

答案 4 :(得分:0)

你可以通过 request.META{"HTTP_ORIGIN"]