簡體   English   中英

使用Docker在Django中使用POST數據發出urllib請求時,如何解決Forbidden 403錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM