所以我试图在Django中启用跨源资源共享,这样我就可以发布到外部站点了,设置时很容易做到
response["Access-Control-Allow-Origin"]="*"
但是我想要检查原点是否在允许的原始列表中(主要是为了限制它只允许特定的站点)但我似乎无法在Django请求的任何地方找到我可以获得的原产地信息。
我尝试使用 request.META ['HTTP_HOST'] ,但这只是返回要发布到的网站。有谁知道Request对象中我可以获得请求的来源吗?
答案 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"]