[英]How to resolve Forbidden 403 error when making a urllib request with POST data in Django using Docker?
我有一個使用Docker的三層Django項目。 第一個容器是前端,並完成所有渲染;第二層處理在前端顯示內容的邏輯,並通過請求JSON與數據庫層(第三層)交互,第三層容器/層直接與JSON交互數據庫。
我在用戶嘗試注冊的前端有一個表單。 但是,當我使用POST對第二層進行API調用並傳遞表單值時,我一直收到403禁止錯誤。 我在表單中使用CSRF令牌。 如何刪除403禁止錯誤?
我在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禁止錯誤。
您需要在第二個Django項目中允許CORS調用
pip install django-cors-headers
.....
INSTALLED_APPS = (
...
'corsheaders',
...
)
.....
MIDDLEWARE_CLASSES = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
這是引用的庫。 Django-CORS-標題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.