【发布时间】:2016-10-25 23:23:43
【问题描述】:
我有一个使用 Docker 的三层 Django 项目。第一个容器是前端,负责所有的渲染,第二层处理前端显示内容的逻辑,并通过请求 JSON 与数据库层(第三层)交互,第三个容器/层直接与数据库。
我在前端有一个用户尝试注册的表单。但是,当我使用 POST 对我的第二层进行 API 调用并传递表单值时,我不断收到 403 Forbidden 错误。我在我的表单中使用了 CSRF 令牌。如何去除 403 Forbidden Error?
前端级别的views.py中的一些代码:
def signup(request):
#more code
username = form.cleaned_data["username"]
#and some more fields
data = {"username": username, "password":password, ... "location": location}
postData = urllib.parse.urlencode(data).encode('utf-8')
try:
req = urllib.request.Request("url to API in 2nd layer", postData)
#more code
Django 尝试执行 try 语句,但我收到 403 Forbidden Error。
【问题讨论】:
-
您的“第二层 API 的 URL”是什么样的?他们在同一个 docker 主机上?
-
它们使用 docker compose 链接。当我使用 GET 请求访问该链接时没有问题。但是我在 POST 请求中收到 403 Forbidden 错误。
标签: python django docker urllib