CSRF cookie not set 提示就是說
未設置CSRF cookie
CSRF 是啥?
表示django全局發送post請求均需要字符串驗證
功能:防止跨站請求偽造的功能
工作原理:客戶端訪問伺服器端,在伺服器端正常返回給客戶端數據的時候,而外返回給客戶端一段字符串,等到客戶端下次訪問伺服器端時,伺服器端會到客戶端查找先前返回的字符串,如果找到則繼續,找不到就拒絕。
訪問流程:客戶端-》URL路由系統 - 》 CSRF -》視圖函數
我這裡要寫的是一個內部使用的api接口,也不大會有 跨站請求偽造
所以這裡提供兩個不是很推薦,但是非常簡單的方式解決這個問題
既然不需要 CSRF 這裡我們就把CSRF檢測關掉即可
解決方法1:
在你創建的項目中,找到settings.py文件文件settings.py 找到 MIDDLEWARE參數注釋掉'django.middleware.csrf.CsrfViewMiddleware',即可就像這樣
解決方法2:
第二種方法和第一種差不多
上面是的注釋掉django.middleware.csrf.CsrfViewMiddleware,這是一個全局的設置
其實我們也可以對單個api 進行特別設置
這裡 我們使用 @csrf_exempt 來進行處理
@csrf_exempt 是用來取消當前函數防跨站請求偽造功能
找 views.py 文件,這是我們處理api規則的導入from django.views.decorators.csrf import csrf_exempt我們在對應的函數上加上@csrf_exempt就像這樣,是不是很簡單
關注我獲取更多內容註:轉載還請註明出處,謝謝^_^